maven - 将 Artifactory 集成到 Jenkins 流水线中
问题描述
我正在尝试将 Artifactory 集成到我的 Jenkins 管道中,以便将 Maven 工件推送到 Artifactory。
我目前的理解是,我应该在 Maven 的deploy
生命周期中使用 Jenkins 管道而不是通过 Maven 插件来部署构建的 Maven 工件。
根据我到目前为止阅读的文档,我认为我的管道中需要类似的代码:
stage('Build') {
steps {
/** Start a docker container with maven and run mvn clean install */
}
}
stage ('Deploy to Artifactory') {
steps {
script {
def server = Artifactory.server 'my-server-id'
def rtMaven = Artifactory.newMavenBuild()
rtMaven.deployer.addProperty("status", "in-qa")
buildInfo = rtMaven.run pom: 'pom.xml', goals: 'clean install'
server.publishBuildInfo buildInfo
}
}
}
但是,我无法完全理解这是在做什么,我无法找到更详细的文档,除了这个 JFrog 博客条目和这个 JFrog Confluence 页面。
特别是,如果我为 run 指令指定目标,它将再次运行 Maven 管道,这不会产生太大影响,因为管道已经在第一阶段运行(例如“构建”)。
另外我应该注意,我在 docker 容器中运行 maven 构建,所以似乎使用上述设置对我来说还不够。
是否有解决此问题的最佳做法?
我正在寻找一种方法来收集我在 docker 容器中使用 maven 构建的工件并将它们上传到 Artifactory 而无需再次运行 maven。
解决方案
推荐阅读
- bootstrap-4 - 需要对齐按钮,以便它始终出现在使用引导程序 4 搜索下方的中心
- javascript - Vue ChartJS 没有更新
- postgresql - Postgresql - upsert 大表很慢
- python - TensorFlow 2.0:sparse_categorical_crossentropy 和 SparseCategoricalCrossentropy 有什么区别?
- swift - 将相同模型的不同实例传递给相同的 SwiftUI 视图结构
- python - 用于 TWiki、Bugzilla 和 SuiteCRM 的 Python SSO
- python - 如何使用 Python 根据相似的坐标和年份选择数据点?
- c++ - 在 C++ 中找到所需行时如何从文件中获取下 n 行
- c# - 同步和异步问题。System.aggregateexception '发生一个或多个错误。当我尝试从 URL 获取对象列表时
- android - 如何从 View 类中获取 Dialog 实例