当我只有最终的.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
。
不幸的是,你必须知道groupId
和artifactId
来获取文件,所以你不能轻易打开和解析它。 但是,当然,您可以获取META-INF/maven
(仅)目录的名称以及此目录(仅)子目录的名称。 这很麻烦,但它应该工作。
注意:还有一个包含最重要信息的pom.properties
文件,它可能比pom.xml
更易于解析。
使用您用来生成jar文件的pom.xml文件。 将该文件保留为工件的一部分,并且在需要手动部署时,可以使用它
这似乎全部倒退到我身上。 我会改变周围的流量
mvn clean deploy
以将库部署到存储库管理器(Nexus左右)或本地存储库(如果您有多个构建节点,则不太理想) 上一篇: How to deploy artifact with maven when i only got the final .jar?