如何使用现有的pom.xml将第三方文件发布到远程maven仓库?
我有一些第三方jar子,我想上传到我的nexus maven repo,到目前为止,我已经找到了两种方法。
- 使用Nexus GUI
- 使用http://maven.apache.org/guides/mini/guide-3rd-party-jars-remote.html上的说明
mvn deploy:deploy-file -DgroupId= \ -DartifactId= \ -Dversion= \ -Dpackaging= \ -Dfile= \ -DrepositoryId= \ -Durl=
我期待第三方库经常更新,当有安全更新/发布时,可能会更频繁地说四分之一。
上面两种方法都是手动的,你必须输入一个长命令或点击它来实现它。 我更喜欢一个不是特定产品或需要冗长命令行选项的简单解决方案。
是否可以编写maven pom.xml,只需通过mvn deploy
发布第三方.tar.gz即可
我正在使用maven 3.0.5
更新根据下面的radai答案为我工作的示例pom.xml。
我们在这里有一个类似的需求,保持非maven工件的标签,并在我们的nexus中更新它们。
我们这样做的方法是在版本控制中有一个“第三方”项目,它存储非maven工件,每个工件都有自己的pom文件。
当您升级任何第三方时,您将覆盖第三方项目中的旧第三方,将相关pom文件中的版本打包并运行"mvn deploy"
将其放入我们的存储库。
一个pom文件的“构建”,导致* .tar.gz将有一个像这样的pom:
4.0.0 myArtifact pom org.apache.maven.plugins maven-resources-plugin copy static resource files resources generate-sources org.apache.maven.plugins maven-assembly-plugin Create final ZIP package package single true platform-assembly.xml
在它旁边有一个seembly描述符:这个包装了一堆东西* .tar.gz,保留* .sh文件的可执行标志。 您需要进行编辑以满足您的需求
${envClassifier} tar.gz false yourTargetDir / **/*.sh yourTargetDir / **/*.sh 755
编辑:如果您不需要提取/混乱/ .tar.gz工件,您有一个更简单的选项 – 使用构建帮助器maven插件的附加工件目标只需附加您的* .tar.gz以包含在部署/安装
你显然需要更新依赖于这个新工件版本的所有步骤。
这是我用来解决我的问题的pom.xml,它基于radai建议使用build helper插件
4.0.0 com.example.thirdparty server-jre 7.25 pom thirdparty http://localhost:8082/nexus/content/repositories/thirdparty/ org.codehaus.mojo build-helper-maven-plugin 1.8 attach-artifacts package attach-artifact files/server-jre-7u25-linux-x64.tar.gz tar.gz linux-x64