Maven:从war文件中的模块jar中排除版本

时间:2013-09-03 14:44:46

标签: maven

我有一个多模块项目。每个模块都内置到.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文件?

0 个答案:

没有答案