0

我最近遇到了一些奇怪的事情,我注意到当我的 WAR 项目由 Tomcat 使用 Eclipse 编译和部署时,文件夹 WEB-INF/classes 应该包含我的二进制版本的类:MyClass.class,实际上包含 .class 和我的班级的 .java 扩展名。更清楚的是,我有一个 Aclass.java,当我编译并运行我的 Web 项目时,如果得到:Aclass.java 和 Aclass.class,则在 WEB-INF/classes 中,通常我应该只找到:Aclass.class

我正在使用 Eclipse Indigo / 使用 Maven2.0 进行管理

4

2 回答 2

2

就我而言,这是由于 Eclipse 没有正确遵守我的pom.xml. Eclipse 会尝试读取您的内容pom.xml并将其自身配置为匹配。它不会直接跑掉pom.xml

我不得不手动调整 Eclipse 的设置。具体来说,在 Project > Deployment Assembly 下,确保“Source”和“Deploy Path”列没有将您的源文件夹之一映射到 WEB-INF/classes。

于 2014-11-03T11:24:40.030 回答
0

您可以使用源导出“.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>
于 2013-07-04T17:55:59.150 回答