如何使用没有pom文件或settings.xml文件的maven直接将jar文件上传到nexus存储库?

Posted

技术标签:

【中文标题】如何使用没有pom文件或settings.xml文件的maven直接将jar文件上传到nexus存储库?【英文标题】:How to directly upload a jar file to nexus repository using maven without pom file or settings.xml file? 【发布时间】:2019-08-12 19:59:41 【问题描述】:

上下文:我没有对 Nexus 存储库的 UI 访问权限,但我可以访问配置为访问 Nexus 存储库的 Jenkins。我的 git 存储库中有一个带阴影的 jar,需要使用没有 pom.xml 或 settings.xml 文件的 maven 直接上传到 nexus 存储库。

问题:如何使用 Jenkins 和 maven 插件将 git repo 中的 jar 上传到 nexus 存储库?

我尝试搜索此特定用例,但找不到解决方案。

【问题讨论】:

为什么没有 settings.XML?似乎是一个奇怪的约束。如果你没有 pom.XML,好吧,可以使用 deploy 生成一个。 【参考方案1】:

上面的 deploy:deploy-file 解决方案仍然需要一个 settings.xml 文件。登录凭证将使用在 repositoryId 参数中指定的 ID 从 setting.xml “servers”部分检索。我知道没有任何方法可以在没有 settings.xml 文件的情况下使用 Maven 进行部署。但您可以使用“mvn -s some/path/settings.xml”指定自定义 settings.xml 文件。

或者,您可以使用 Jenkins 插件进行部署:https://help.sonatype.com/integrations/nexus-and-continuous-integration/nexus-platform-plugin-for-jenkins#NexusPlatformPluginforJenkins-RepositoryManager3Integration

【讨论】:

【参考方案2】:

您可以创建一个 Jenkins Job 来克隆 git 存储库 [Source Code Management],其中存在所需的 jar,并使用以下 maven 命令 [Execute Shell] 配置 Jenkins Job Build 阶段:

mvn deploy:deploy-file \
    -DgroupId=com.example.test \
    -DartifactId=test-module \
    -Dversion=1.0.0 \
    -DgeneratePom=true \
    -Dpackaging=jar \
    -DrepositoryId=sample-rel \
    -Durl=http://nexus.private.net/Your_Nexus_Repository_Path \
    -Dfile=./PATH_TO_JAR_FILE

(编辑:多行以提高可读性)

【讨论】:

您的网址参数还需要一个“-”

以上是关于如何使用没有pom文件或settings.xml文件的maven直接将jar文件上传到nexus存储库?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Maven 从 pom.xml 中的 settings.xml 访问元素?

Maven入门2-pom.xml文件与settings.xml文件

maven 配置文件 settings.xml pom.xml

maven学习之pom.xml或settings.xml对nexus的配置(转)

使pom文件中的仓库生效

[转]maven全局配置文件settings.xml详解