Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
建立多模块maven项目_Maven_Jenkins_Nexus - Fatal编程技术网

建立多模块maven项目

建立多模块maven项目,maven,jenkins,nexus,Maven,Jenkins,Nexus,嗨,我在网上搜索过,读过一堆文章,所以有问题和文档,但我找不到解决办法,这里是我的问题 我有一个多模块maven项目,它包含三个模块a、B和C。 A和B独立,C依赖于A和B,当然我有一个父项目。我还设置了一个jenkins服务器来构建这些项目,以及一个nexus存储库 我的问题是,当我构建项目时,maven正确地构建了A和B,但对于C,它从nexus存储库下载了一个较旧的工件,当然它无法构建模块C。 我如何让maven使用安装在本地存储库中的当前构建的JAR,而不是nexus上的旧JAR A、B

嗨,我在网上搜索过,读过一堆文章,所以有问题和文档,但我找不到解决办法,这里是我的问题

我有一个多模块maven项目,它包含三个模块a、B和C。 A和B独立,C依赖于A和B,当然我有一个父项目。我还设置了一个jenkins服务器来构建这些项目,以及一个nexus存储库

我的问题是,当我构建项目时,maven正确地构建了A和B,但对于C,它从nexus存储库下载了一个较旧的工件,当然它无法构建模块C。 我如何让maven使用安装在本地存储库中的当前构建的JAR,而不是nexus上的旧JAR

A、B和C的版本设置为1.1.{build_number}-带有maven版本插件的快照,据我所知,maven应该从本地使用更新的版本,但它没有这样做。 起初,我不想发布数百行pom.xml,但如果您需要第节,我将提供它


任何帮助都将不胜感激。谢谢大家!

我一直在子模块的pom中设置版本号,并更改为从父pom继承版本号。在模块
C
的pom模块
A
B
版本设置为
${project.version}

中,我一直在设置子模块pom中的版本号,并更改为从父pom继承版本号。在模块
C
的pom模块
A
B
版本设置为
${project.version}

中,我正在使用Jenkins和Artifactory,当我构建一个多模块项目时,Maven首先查看本地Maven repo(.m2/存储库)。接下来,当构建正常时,二进制文件(A、B和C)被上传到Artifactory中。也许你可以选择Jenkins/Nexus使用本地回购而不是远程回购?嗨,Bruno,谢谢你的回答。我想要的正是您正在做的事情,但在我的例子中,maven忽略了本地存储库,我不知道如何让它使用当前构建的工件。你知道我应该去哪里吗?也许这个答案能帮上忙:Maven每天刷新一次本地依赖项,因此,也许你只需要更改此设置:嗨,它被设置为“始终”,但我现在设置为“从不”,以防止下载snpashot工件,但仍然忽略了本地repo中较新的工件。我使用Jenkins和Artifactory,当我构建多模块项目时,Maven首先查看本地Maven repo(.m2/存储库). 接下来,当构建正常时,二进制文件(A、B和C)被上传到Artifactory中。也许你可以选择Jenkins/Nexus使用本地回购而不是远程回购?嗨,Bruno,谢谢你的回答。我想要的正是您正在做的事情,但在我的例子中,maven忽略了本地存储库,我不知道如何让它使用当前构建的工件。你知道我应该去哪里看吗?也许这个答案会有帮助:Maven每天刷新本地依赖项一次,所以也许你只需要更改这个设置:Hi,它被设置为always,但我现在设置为never,以防止下载snpashot工件,但我的本地repo中更新的工件仍然被忽略。