我有一个多模块项目。每个模块都内置到.jar文件中,该文件的名称与${project.artifactId}
对应。一个模块内置于.war文件中。这是我在某些问题上遇到的问题。 WEB-INF文件夹包含lib文件夹,其中包含来自其他模块的一些结果.jars。这些罐子的名称如下:project.artifactId+project.version.jar
,当我只需project.artifactId.jar
时。
我尝试配置maven-war-plugin和maven-jar-plugin,但结果仍然相同。
以下是一些带有构建结果的pom.xml文件:
jar模块
<groupId>com.mymodule.mysubmodule</groupId>
<artifactId>sub-module</artifactId>
<version>1.1-SNAPSHOT</version>
<build>
<finalName>${project.artifactId}</finalName>
...
结果 :sub-module.jar
战争模块
<groupId>com.mymodule.warmodule</groupId>
<artifactId>war-module</artifactId>
<version>1.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependency>
<groupId>com.mymodule.mysubmodule</groupId>
<artifactId>sub-module</artifactId>
<version>1.1-SNAPSHOT</version>
</dependency>
<build>
<finalName>ROOT</finalName>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>default-jar</id>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<finalName>${project.artifactId}</finalName>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<executions>
<execution>
<id>default-war</id>
<configuration>
<warSourceExcludes>**</warSourceExcludes>
<webXml>${project.build.directory}/${project.build.finalName}/WEB-INF/web.xml</webXml>
</configuration>
</execution>
</executions>
</plugin>
...
结果 :/ target / war-module.jar,ROOT / WEB-INF / lib / war-module-1.1-SNAPSHOT.jar,ROOT / WEB- INF / LIB /子模块-1.1-SNAPSHOT.jar
war-maven-plugin的 outputFileNameMapping
不适合我,因为它会删除所有依赖项的版本,甚至不会删除我的模块。
如何使用WEB-INF / lib文件夹中没有版本的特定jar构建.war文件?