当前位置: 首页 > 知识库问答 >
问题:

如何在Artifactory和Jenkins管道脚本中发布maven项目

穆承运
2023-03-14

我有一个Maven SpringBoot项目。我想把它推到云工厂。为此,我为Jenkins编写了一个groovy管道脚本。我要补充什么?在脚本和/或pom中。xml将其发布到Artifactory中,这样Jenkins将从Git中提取代码并将其发布到Artifactory。在另一个环境中,我将拉出artifactory版本化的JAR,并将其推送到Cloud Foundry。

假设我的项目的groupId是com。例如,artifactid为XYZ,版本为1.0-SNAPSHOT。

共有2个答案

冯浩旷
2023-03-14

如果您正在使用gitlab并谈论jenkins管道脚本,则必须创建管道作业。下面是您可以增强的示例groovy脚本。

 node {

    stage ("Checkout"){
        checkout changelog: false, poll: false, scm: [$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'LocalBranch', localBranch: 'master']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'your_git_cred', url: 'your_gitlab_url']]]   
    }

    stage ("Build and Push to Artifactory"){
       tool name: 'Maven3.0', type: 'maven'
       sh "mvn clean deploy"
    }  
}

在pom中,您必须在分发管理中添加工件位置

<distributionManagement>
        <repository>
            <id>artifactory</id>
            <url>your_artifactory_url</url>
        </repository>
        <snapshotRepository>
            <id>artifactory</id>
            <url>your_artifactory_url</url>
        </snapshotRepository>
    </distributionManagement>

更多关于jenkins-pipline的信息https://jenkins.io/doc/book/pipeline/

薛弘济
2023-03-14

所以为了清楚起见,您不打算将代码发布到artiFactory,您要发布管道中的Maven步骤产生的工件。您可以从Maven(maven部署或maven发布:准备发布:执行)中直接完成这件事,前提是您有Maven配置设置来正确地与目标artiFactory服务器进行身份验证。

您还可以使用Artifactory插件,该插件提供了实现这一点的步骤:

https://jenkins.io/doc/pipeline/steps/artifactory/

最后,您可以在当前管道的另一个阶段或部署管道中使用Cloud Foundry插件将工件部署到Cloud Foundry实例。

https://jenkins.io/doc/pipeline/steps/cloudfoundry/

 类似资料:
  • 我正在使用Jenkins管道自动构建和部署我的Java应用程序。我还使用maven发布插件来执行maven部署到Artifactory。 问题是我的Jenkinsfile(或Jenkins管道配置): 我们在发布分支上提交版本0.1.00-SNAPSHOT Jenkins管道获取代码,并执行maven发布 Maven版本将版本更改为0.1.00 Maven发布标签GIT分支、提交和部署工件 Mav

  • 当我试图使用Jenkins发布Maven项目时,我遇到了这样的错误: 无法执行目标组织。阿帕奇。专家plugins:maven release plugin:2.5:project上的prepare(默认cli)maven plugin:reactor projects列表中没有快照项目。

  • 问题内容: 我最近将bash执行命令重写为Jenkins管道。旧代码就像 现在,我使用管道脚本来包装命令,像这样 但是,我遇到了一个错误。当我尝试时,它会正确显示。所以我怀疑内部有问题。 在使用管道之前,命令在外壳执行中工作正常。因此,源代码安装在Jenkins服务器上,似乎管道脚本不知道源命令是什么。 如何在sh wrapd块中运行source命令? 问题答案: 替换为 请注意,第一个点后有一个

  • 我正在尝试在 Jenkins 中配置以下工作流模式: 构建战争文件 我似乎错过了一些东西。应用程序的组件(jar 文件等)似乎在目标版本/快照目录中很好地部署到 Artifactory 中。然而,最终的WAR神器似乎并没有存储在Artifactory中,尽管Jenkins清楚地指出该神器是成功构建的。 我使用的是标准目标:全新安装。我也尝试过(没有改变):全新安装重新打包 我安装了Jenkins的

  • 我正试图在我的maven项目中使用Jenkins主从架构。我有windows机器上的Jenkins master和Linux机器上的slave。现在的问题是,当我运行Jenkins脚本时,它会给我一个错误,比如无法初始化git存储库,因为Jenkins正在尝试执行git。Linux从机上的exe。有人能告诉我怎么解决吗? 以下是我的Jenkins管道脚本和错误日志 错误如下

  • 我正在编写一个声明性Jenkins管道脚本,以构建工件并将其发布到JFrog Artifactory 我们只有一个项目存储库,服务位于services文件夹下。所有服务都有自己的pom。xml。我们需要编写一个脚本到管道脚本,只有在服务的单个目录结构中检测到更改时,才能构建工件并将其发布到JFrog 根据客户要求,我们不能为每项服务设置单独的存储库。这里的问题是,使用下面的脚本(使用rtUploa