如何防止maven在EAR文件中复制jar?

时间:2012-03-04 15:41:20

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

我有一个由maven构建的EAR文件,目前我有一个公共项目,我想把它放在一个EAR \ lib中,所以我使用maven-ear-plugin和'bundleDir'标签工作正常,只有现在我的commons.jar出现在lib文件夹和EAR根目录中。如何告诉它只将它放在lib文件夹中?

我的pom:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ear-plugin</artifactId>
            <configuration>
                <outputDirectory>../../outputs/java</outputDirectory>
                <version>5</version>
                <modules>
                    <jarModule>
                        <groupId>com.sample.common</groupId>
                        <artifactId>common</artifactId>
                        <includeInApplicationXml>
                            true
                        </includeInApplicationXml>
                        <bundleDir>/lib</bundleDir>
                    </jarModule>
                    ...
                </modules>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>ear</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

以下是依赖关系定义:

<dependency>
        <groupId>com.sample.common</groupId>
        <artifactId>common</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
    </dependency>

1 个答案:

答案 0 :(得分:1)

如果您的jar文件不是ejb,您可以简单地将其置于耳朵依赖,而无需定义到maven-ear-plugin。否则,尝试在依赖项列表中设置提供给jar的范围。这可能会有所帮助。