【发布时间】:2018-02-28 14:47:19
【问题描述】:
我有一个要导出为 WAR 文件的 maven 项目。 WAR 结构如下所示:
Project_Name.war
|
|__ META_INF
|
|__ WEB_INF_
|
|__ lib
|
|__ classes_
|
|__ project_package(project src code)
|
|__ META_INF
|
|__ WEB_INF_
| |
| |__ web.xml
|__ project config files
如您所见,我的项目 src 代码位于 classes 目录中。而不是这个,我想将我的项目 src 代码作为 JAR 文件包含在我的 lib 文件夹中。 web.xml 也在 classes 文件夹中。我想把它放在classes 文件夹之外,即WEB_INF 以及lib 和“类”。
我总是可以手动完成这两项操作。
我预期的 WAR 结构是这样的:
Project_Name.war
|
|__ META_INF
|
|__ WEB_INF_
|
|__ lib_
| |__ Project.jar
|
|__ classes_
| |
|__ web.xml |
|__ project config files
但我想知道这是否可以通过项目的pom.xml 来完成?我会感谢那里的专家退伍军人的一些帮助。谢谢。
我正在使用maven_war_plugin 和mvn install 命令来构建WAR。
包括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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>PROJECT_A</groupId>
<artifactId>PROJECT_A</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
.
.
.
.
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>config</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
.
.
.
</repositories>
<pluginRepositories>
.
.
</pluginRepositories>
</project>
【问题讨论】:
-
也许您应该包含 POM 以及您用于构建的命令。在 classes 文件夹中看到源文件很奇怪。
-
@TimBiegeleisen:用于建立战争的命令是
mvn clean install。给我一点时间来介绍 pom 的结构 -
首先你为什么要改变Maven中的约定?你想解决什么样的问题?保持约定优于配置范式...它使您的生活更轻松...并且您的 war 文件的结构看起来错误...