Maven WAR - 源代码未编译

8

您好,

我正在尝试使用Maven构建我的Web应用程序,但遇到了一些困难。

Maven会组装我的war文件并将所有内容放在其位置,除了编译的类。似乎我的源代码甚至没有被编译。

我的文件夹结构如下:

         src
         src/main
         src/main/java
         src/main/java/com
         src/main/java/com/test
         src/main/java/com/test/applications
         src/main/java/com/test/applications/TestApplication.java
         src/main/resources
         src/main/webapp
         src/main/webapp/media
         src/main/webapp/media/someimages.jpg
         src/main/webapp/styles
         src/main/webapp/styles/somecss.css
         src/main/webapp/WEB-INF
         src/main/webapp/WEB-INF/web.xml
         src/main/webapp/scripts
         src/main/webapp/scripts/jquery
         src/main/webapp/scripts/jquery/jquery-1.5.js
         pom.xml

我的pom.xml如下所示:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.test</groupId>
  <artifactId>TestApp</artifactId>
  <packaging>war</packaging>

  <version>0.0.1-SNAPSHOT</version>
  <name>TestApp Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <build>
    <finalName>TestApp</finalName>
  </build>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

已组装的文件看起来还不错,除了WEB-INF / classes文件夹是空的。我正在使用Jenkins和Maven 3.0.2进行构建。

非常感谢您的任何帮助。

最好的问候, 克里斯


你能找到 WEB-INF/lib/TestApp-0.0.1-SNAPSHOT.jar 吗?如果是这样,那么它意味着已经将它们打包成了jar文件。 - gigadot
很遗憾... WEB-INF/lib 文件夹也是空的。 - csupnig
你确定Jenkin使用“mvn clean install”命令来清理和编译代码吗?如果它仍然不起作用,我不知道该怎么办。你在不使用Jenkin的情况下编译代码有问题吗? - gigadot
经过一些测试,我发现我仍然配置了旧的目标,这些目标是我使用war插件时使用的。我删除了war:war,现在它可以工作了。谢谢。 - csupnig
2个回答

2
问题可以解决:
如评论中所述,我仍然有一些旧的配置用于jenkins构建作业,它会使用目标war:war来构建项目。
删除这个配置后,问题得到了解决。

1

我也遇到了同样的问题(不过我没有使用Jenkins)。 注意:我使用了Maven Web应用程序创建:

mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=myGroupID -DartifactId=myArtifactID

Web应用程序项目的文件夹结构中有一个名为“src/main/resources”的文件夹,其中包含所有我的源(.java文件)。

当我根据朋友的建议将“资源”文件夹更改为“java”(意思是“src/main/java”)时,我所要做的就是调用“mvn clean install”,然后就可以生成一个包含编译好类的war文件。

希望我的答案足够详细....


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接