Maven war插件无法以爆炸战格式排除libs

时间:2010-10-31 02:50:52

标签: java maven-2 maven-plugin maven-assembly-plugin

我正在使用maven war插件来排除一些常见的jar并将它们放在类路径中。我能够正确生成war文件,它排除了指定的lib并将它们添加到类路径中,但是爆炸的war目录仍然包含排除的libararies。如何生成使用maven war插件配置的爆炸war文件。

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.ekaplus.ctrm.mdm</groupId>
    <artifactId>core-presentation</artifactId>
    <version>1.0</version>
    <packaging>war</packaging>
    <name>presentation layer core</name>

    <dependencies>
        <dependency>
            <groupId>com.ekaplus.ctrm.mdm</groupId>
            <artifactId>eka-core-mdm-presentation</artifactId>
            <version>1.0</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <profiles>
        <profile>
            <id>exploded</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <defaultGoal>package</defaultGoal>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>2.1</version>
                        <configuration>
                            <packagingExcludes>
                                WEB-INF/lib/dto-common-1.0.jar,
                                WEB-INF/lib/eka-action-1.0.jar
                            </packagingExcludes>
                            <archive>
                                <manifest>
                                    <addClasspath>true</addClasspath>
                                </manifest>
                            </archive>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>

1 个答案:

答案 0 :(得分:3)

  

(...)如何生成使用maven war插件配置的爆炸war文件。

war:exploded目标确实使用了maven war插件的(全局)配置,但它不接受war:war的{​​{3}}参数。这不起作用。

但是为什么你还在使用packagingExcludes呢?这个参数应该用于实现非常特殊的瘦战争用例,我不确定这是你的情况。你为什么需要它?

根据您的确切需求,我的建议是使用依赖范围(在您的情况下为provided?)或配置文件(添加依赖项)或两者的组合。