强制Maven 3复制“提供的”依赖项

时间:2013-04-18 13:08:37

标签: java maven

我使用copy-dependencies目标来复制当前工件的依赖项。 但它不会复制“提供”范围的依赖关系。 如何解决?

xml配置是标准配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>install</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>lib</outputDirectory>
                        <overWriteReleases>true</overWriteReleases>
                        <overWriteSnapshots>true</overWriteSnapshots>
                        <overWriteIfNewer>true</overWriteIfNewer>
                        <excludeArtifactIds>project-services</excludeArtifactIds>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <finalName>project-web</finalName>
</build>

为什么我要这样做? 因为我必须支持ant和maven构建工作。 因此,我想通过运行 mvn install -o 将所有依赖项复制到单独的目录中。在Ant build.xml中,我将该目录的路径包含为classpath。之后,Ant构建了ear文件并包含整个lib目录withoud system tools.jar和其他“提供的”jar。 Apache Maven的版本是3.0.3

1 个答案:

答案 0 :(得分:1)

如插件所述,使用includeScope:

http://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html#includeScope

修改

  

为什么我要这样做?因为我必须支持蚂蚁和maven   建立工作。

考虑使用Ivy来管理Ant的依赖关系: http://ant.apache.org/ivy/

这里有一篇文章,您可以如何配置Ivy以连接到Nexus:

https://support.sonatype.com/entries/21627528-how-do-i-configure-my-ivy-build-to-download-artifacts-from-nexus