我最近遇到了一些奇怪的事情,我注意到我的WAR项目是由Tomcat使用Eclipse编译和部署的,文件夹WEB-INF /类应该包含我的二进制版本的类:MyClass.class,包含实际的我班的.class和.java扩展。更清楚的是,我有一个Aclass.java,当我编译并运行我的web项目时,在WEB-INF / classes中如果得到:Aclass.java和Aclass.class,当normaly我应该只找到:Aclass.class
我正在使用Eclipse Indigo /使用Maven2.0进行管理
答案 0 :(得分:2)
就我而言,这是因为Eclipse没有正确地尊重我pom.xml
中的设置。 Eclipse尝试读取您的pom.xml
并将其自身配置为匹配。它不直接从pom.xml
运行。
我必须手动调整Eclipse的设置。具体来说,在Project>下部署程序集确保“来源”。和'部署路径'列不会将您的一个源文件夹映射到WEB-INF / classes。
答案 1 :(得分:0)
您可以使用source导出“.war”,这可能就是您所处的情况。如果您在项目上“右键单击”并选择“导出”> “战争”,你可以“取消选择”“出口来源”,以及有关战争产生的其他细节。
在你的maven中你可能有一些细节要“指出”包含你的源文件(例如在这个问题中它显示了如何包含源文件:How to generate a WAR with the source code in Maven?,如果你不想要你应该删除它们生成的WAR中的源文件。)
pom.xml的“配置”部分摘录,不包含java源文件:
<configuration>
<classifier>dev</classifier>
<webappDirectory>${project.build.directory}/${project.build.finalName}-dev</webappDirectory>
<webResources>
<resource>
<directory>src/env/dev</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.css</include>
<include>**/*.html</include>
</includes>
</resource>
</webResources>
</configuration>