【问题标题】:Maven WAR - sources are not getting compiledMaven WAR - 源代码没有被编译
【发布时间】:2011-08-21 06:25:03
【问题描述】:

您好,

我正在尝试使用 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 文件夹是空的之外,组装的 ware 文件看起来没问题。我正在使用 Jenkins 和 Maven 3.0.2 构建。

非常感谢任何帮助。

最好的问候, 克里斯

【问题讨论】:

  • 你找到WEB-INF/lib/TestApp-0.0.1-SNAPSHOT.jar了吗?如果是这样,则意味着它已经将它们打包成jar文件。
  • 很遗憾没有... WEB-INF/lib 文件夹也是空的。
  • 您确定 Jenkins 使用“mvn clean install”命令来清理和编译代码吗?我不知道它是否仍然不起作用。不使用 Jenkins 编译代码有问题吗?
  • 感谢,经过一些测试后,我发现我仍然配置了与 war 插件一起使用的旧目标。我删除了战争:战争,现在它正在工作。

标签: java web-applications maven


【解决方案1】:

问题可以解决了:

正如评论中提到的,我仍然有一些用于 jenkins 构建作业的旧配置,它将使用目标 war:war 来构建项目。

删除后它工作正常。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题(除了我没有使用 jekins)。 注意:我使用了 maven webapp 创建:

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

    webapp 项目文件夹结构有一个这样的文件夹:'src/main/resources' 我所有的源(.java 文件)都在其中。

    当我通过朋友的建议将“资源”文件夹名称更改为“java”(意思是“src/main/java”)时,我所要做的就是调用“mvn clean install”来包含一个war文件编译类。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-09
      • 1970-01-01
      • 2015-03-09
      • 2013-11-07
      • 2019-01-08
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      相关资源
      最近更新 更多