当我只有最终的.jar时,如何用maven部署工件?

我有一个jenkins build-pipeline,其中第一份工作是调用mvn clean package来编译和构建我的java项目。 之后将工件复制到一堆测试工作中,以确保构建的质量。 链中的最后一项工作应该将工件部署到我的连接库中。

我的问题是现在,如何将文件部署到nexus当我只有最终的jar myproject-1.2.0-SNAPSHOT.jar与maven?

我试过了

mvn deploy:deploy-file

但是这个插件需要获取关于groupId,工件id,版本等信息。我不想在我的部署工作中知道这些信息。 是不是在一些maven文件中存储在jar本身中的信息? 我只想说联系,这是一个神器,拿它。


使用Maven构建的jar在META-INF/maven/目录中包含这些信息。 在META-INF/maven/[groupId]/[artifactId]/pom.xml下有完整的pom.xml文件。

所以你可以写一个小程序来提取这些信息,并用正确的参数调用mvn deploy:deploy-file

不幸的是,你必须知道groupIdartifactId来获取文件,所以你不能轻易打开和解析它。 但是,当然,您可以获取META-INF/maven (仅)目录的名称以及此目录(仅)子目录的名称。 这很麻烦,但它应该工作。

注意:还有一个包含最重要信息的pom.properties文件,它可能比pom.xml更易于解析。


使用您用来生成jar文件的pom.xml文件。 将该文件保留为工件的一部分,并且在需要手动部署时,可以使用它


这似乎全部倒退到我身上。 我会改变周围的流量

  • 运行mvn clean deploy以将库部署到存储库管理器(Nexus左右)或本地存储库(如果您有多个构建节点,则不太理想)
  • 让测试工作从存储库中获取工件作为依赖关系(或脚本化的wget或其他)
  • 你已经完成了..
  • 链接地址: http://www.djcxy.com/p/79971.html

    上一篇: How to deploy artifact with maven when i only got the final .jar?

    下一篇: change maven j2ee deploy name