如何让 Jenkins 构建正确的 .war 文件?

How to let Jenkins build the correct .war file?

我正在 Maven 和 Jenkins 的帮助下为 Tomcat 服务器构建 Web 应用程序。

问题是,Tomcat 解压后的 .war 文件的结构不是以它工作的方式,也不是 "tomcat conform" 的方式(https://tomcat.apache.org/tomcat-7.0-doc/appdev/deployment.html).

我该如何解决这个问题?

详情: 这是我接手的项目,不是我自己建造的。

您应该遵循 maven conventions for folder layout,这意味着 src/main/java 对于 Java 等源文件。在 src/main/webapp/ 中,更多属于网络应用程序的东西..如 web.xml、jsp 文件等。此外,您需要在 pom 文件中设置正确的 <packaging>..</packaging> war 你的情况。

 |-- pom.xml
 `-- src
     `-- main
         |-- java
         |   `-- com
         |       `-- example
         |           `-- projects
         |               `-- SampleAction.java
         |-- resources
         |   `-- images
         |       `-- sampleimage.jpg
         `-- webapp
             |-- WEB-INF
             |   `-- web.xml
             |-- index.jsp
             `-- jsp
                 `-- websource.jsp

除此之外,我建议您首先在命令行上创建 war 文件,并且不要在第一步中使用 Jenkins,否则您的项目中会出现更多错误来源。如果 war 文件将被正确创建并且可以毫无问题地手动部署到 Tomcat,您可以更进一步并使用像 Jenkins 这样的 CI 解决方案。