Maven Jenkins管道插件——获取和构建依赖项

Maven Jenkins管道插件——获取和构建依赖项,maven,jenkins,jenkins-pipeline,Maven,Jenkins,Jenkins Pipeline,我是詹金斯的新手,我的搜索结果很少,我想我只是还不了解术语 我有一个项目,我想与詹金斯管道公司合作。这是一个Java/maven项目,位于GIT存储库中。它依赖于我的另外两个Java/maven项目,也在GIT存储库中 我如何向詹金斯解释这种关系? 让我们简化一下。假设我有依赖于ProjectB的ProjectA。我可以让詹金斯来建ProjectB没问题。如果需要,我甚至可以将jar存档,因此ProjectB的编译副本存储在我的Jenkins服务器中 但无论我做什么,ProjectA都无法使用

我是詹金斯的新手,我的搜索结果很少,我想我只是还不了解术语

我有一个项目,我想与詹金斯管道公司合作。这是一个Java/maven项目,位于GIT存储库中。它依赖于我的另外两个Java/maven项目,也在GIT存储库中

我如何向詹金斯解释这种关系?

让我们简化一下。假设我有依赖于ProjectB的ProjectA。我可以让詹金斯来建ProjectB没问题。如果需要,我甚至可以将jar存档,因此ProjectB的编译副本存储在我的Jenkins服务器中

但无论我做什么,ProjectA都无法使用

[错误]无法在project上执行目标A:无法解析project的依赖项A:无法解析以下工件:ProjectB:jar:0.9:未能在中找到ProjectB:jar:0.9缓存在本地存储库中,在经过central的更新间隔或强制更新之前,不会重新尝试解析->[帮助1]

这必须非常简单,我只是不知道我需要搜索什么

ProjectA中我的Jenkins文件现在看起来像这样:

pipeline {
agent {
    docker {
        image 'maven:3-alpine'
        args '-v /root/.m2:/root/.m2'
    }
}
stages {
    stage('Build') {
        steps {
            build 'ProjectB'
            sh 'mvn -B -DskipTests clean package'
        }
    }
}

}

项目A独立于项目B。在Jenkins中存档它们不会将它们放在Maven可以识别并作为依赖项使用的任何地方。你必须确保你的专业工作知道如何找到他们。有两种选择

您可以发布到类似artifactory的存储库中。然后,Maven只需要配置为查看该回购协议

您可以使用Jenkins REST API,甚至仅使用uri来查找工件并将其下载到工作区中(如果您的新构建成功的话)

您可以使用复制工件插件将工件从另一个构建拉入您的工作区,以便使用它

或者,由于它是一个管道,您可以在同一管道的不同阶段构建这两个部分

如果你在B所建的图书馆只适用于工作A,我会考虑把它全部建立在同一条管道上。但有时,使用某种外部存储库来发布您的库,然后配置maven查看该repo以查找您的依赖项,仍然更有意义。我通常会使用这个选项,但它需要更多的软件和更多的设置