Maven:附加多个工件
我有一个使用一些自定义jar的maven项目[在任何存储库中都找不到]。 要将它们与Maven构建一起添加,我在maven中使用attach-artifact目标。 以下是我的pom文件:
4.0.0 com.maximus adminbuild 1.0-SNAPSHOT pom adminbuild src/main/java src/test/java target org.codehaus.mojo build-helper-maven-plugin 1.7 attach-artifacts package attach-artifact ${basedir}/../../resources/dependencies/java/customjar1.jar jar ${basedir}/../../resources/dependencies/java/customjar2.jar jar
我使用这些jar [customjar1.jar,customjar2.jar]的项目依赖于上面的pom文件[adminbuild]。
当我执行mvn clean install
命令时,出现以下错误:
[ERROR] Failed to execute goal org.codehaus.mojo:build-helper-maven-plugin:1.7:attach-artifact (attach-artifacts) on project adminbuild: The artifact with same type and classifier: jar:null is used more than once. -> [Help 1]
以下是mvn -version
命令的输出:
Apache Maven 3.0.3 (r1075438; 2011-02-28 23:01:09+0530) Maven home: C:\maven Java version: 1.6.0_26, vendor: Sun Microsystems Inc. Java home: C:\Java\jdk1.6.0_26\jre Default locale: en_IN, platform encoding: Cp1252 OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
似乎我附加工件的方式不正确。 我不应该在同一个pom文件中附加多个工件吗? 如果是,那么如何。 请帮忙。
附加工件通常用于安装构建创建的其他文件,例如webapp的类jar,文档或源。
要将文件添加到maven存储库以便它们作为依赖项可用,您应该使用安装文件目标。
编辑:附加工件由与主项目相同的groupId和artifactId标识,但具有不同的分类器。 在您的配置中,您没有指定分类器,因此错误消息。
您可能希望将这些自定义jar放在像nexus这样的存储库管理器中,以便可以像普通的依赖jar一样下载/使用它们。
假设这是不可能的,并且看到这些jar子在众所周知的位置,也许您可以在需要它们的项目中指定这些具有system
范围的自定义jar子?
... my-group customjar1 abc system ${basedir}/../../resources/dependencies/java/customjar1.jar ...
我使用了一个辅助项目和一个多模块。