3

我有一个多模块项目。每个模块都内置在 .jar 文件中,其名称对应于 .jar 文件${project.artifactId}。一个模块内置在 .war 文件中。这是我处理一些问题的地方。WEB-INF 文件夹包含 lib 文件夹,其中包含来自其他模块的一些结果 .jar。这些罐子的名称如下:project.artifactId+project.version.jar,当我需要时project.artifactId.jar

我试过配置maven-war-plugin和maven-jar-plugin,结果还是一样。

以下是一些带有构建结果的 pom.xml 文件:

罐子模块

<groupId>com.mymodule.mysubmodule</groupId>
<artifactId>sub-module</artifactId>
<version>1.1-SNAPSHOT</version>

<build>
    <finalName>${project.artifactId}</finalName>
    ...

结果:子模块.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/sub-module-1.1-SNAPSHOT.jar

outputFileNameMappingwar-maven-plugin 不适合我,因为它会删除所有依赖项的版本,甚至不会从我的模块中删除。

如何在 WEB-INF/lib 文件夹中使用没有版本的特定 jar 构建 .war 文件?

4

0 回答 0