使用声明性管道将项目Jar作为maven工件发布到Jfrog工件库
我正在编写一个声明性Jenkins管道脚本,用于构建工件并将其发布到JFrog Artifactory。使用声明性管道将项目Jar作为maven工件发布到Jfrog工件库,maven,jenkins,jenkins-pipeline,artifactory,jenkins-declarative-pipeline,Maven,Jenkins,Jenkins Pipeline,Artifactory,Jenkins Declarative Pipeline,我正在编写一个声明性Jenkins管道脚本,用于构建工件并将其发布到JFrog Artifactory。 我们只有一个项目存储库,服务位于services文件夹下。所有服务都有自己的pom.xml。只有在服务的单个目录结构中检测到更改时,我们才需要编写一个脚本到管道脚本来构建工件并将其发布到JFrog。 对于每个客户,我们不能为每个服务拥有单独的存储库。这里的问题是,使用下面的脚本(使用rtUpload),我无法将工件作为maven工件(组id、工件id和版本号)发布到artifactory。请
我们只有一个项目存储库,服务位于services文件夹下。所有服务都有自己的pom.xml。只有在服务的单个目录结构中检测到更改时,我们才需要编写一个脚本到管道脚本来构建工件并将其发布到JFrog。
对于每个客户,我们不能为每个服务拥有单独的存储库。这里的问题是,使用下面的脚本(使用rtUpload),我无法将工件作为maven工件(组id、工件id和版本号)发布到artifactory。请求你的帮助 项目结构如下所示
trinad(repository)
|
|-----/java/services/customer_quote/pom.xml
|
|-----/java/services/customer_rate/pom.xml
|
|-----/java/services/customer_renew/pom.xml
我建议使用中提到的基于Maven的作业,并对其进行测试。当您试图使用“mvn”客户机构建并使用rtUpload部署到Artifactory时,我怀疑这是否正确。您可以先试用mvn deploy,或者使用上面wiki中提到的方法设置管道
声明性脚本的示例JenkinsFile可以在这个JFrog的目录下找到。使用rtMavenRun可能有助于构建和部署文件。是否尝试使用
maven deploy
而不是rtUpload
?
pipeline{
agent any
tools{
jdk 'JDK'
maven 'Maven'
}
stages{
stage('Build'){
when {
anyOf{
changeset '**/services/customer_quote/**'
}
}
steps{
sh 'mvn -v'
sh 'mvn -f java/services/customer_quote/pom.xml' clean install
}
when {
anyOf{
changeset '**/services/customer_rate/**'
}
}
steps{
sh 'mvn -v'
sh 'mvn -f java/services/customer_rate/pom.xml' clean install
}
}
stage('publish'){
when {
anyOf{
changeset '**/services/customer_quote/**'
}
}
steps{
rtUpload{
serverId:'Artifactory',
spec:'''{
"files":[
{
"pattern":"/services/customer_quote/target/customer-quote-*.jar",
"target": "trinad"/${BUILD_NUMBER}/"
}]
}
}
}
//publish steps for other services goes here
}
}
}