Maven 在Teamcity中使用依赖库构建jar

Maven 在Teamcity中使用依赖库构建jar,maven,teamcity,Maven,Teamcity,我正在使用IntelliJ和Maven构建一些Java库和应用程序。 app jar依赖于在app的pom.xml声明中本地构建的库: <dependency> <groupId>GrpID</groupId> <artifactId>ResultsExporterLib</artifactId> <version>1.0-SNAPSHOT</version> </dependency> 关于如何解

我正在使用IntelliJ和Maven构建一些Java库和应用程序。 app jar依赖于在app的pom.xml声明中本地构建的库:

<dependency>
<groupId>GrpID</groupId>
<artifactId>ResultsExporterLib</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
关于如何解决Teamcity构建错误有何想法/建议?
这与Teamcity的存储库配置有关吗?

Teamcity中的工件依赖关系只是可以从一个构建传递到另一个构建的文件/档案。如果您不将它们解压缩到正确的文件夹中,Maven将找不到它们-这无论如何都不是个好主意

Maven通过存储库交换工件(同一个词,完全不同的东西)。本地代理或存储库代理(Nexus、Artifactory等)。您需要将您的依赖项发布到这样一个存储库中,以便maven能够找到它

如果在同一个代理上运行依赖项的构建(mvn安装),然后运行依赖项的构建,那么工作速度会更快。这样,工件将位于代理的本地maven存储库中。您可以在teamcity中的快照相关性中定义此限制。根本不需要工件依赖关系

So:buildA->buildB(快照依赖于buildA,在同一个代理上) 现在该做了

这只是目前的一个解决办法。maven的工件需要进入存储库。该存储库在teamcity的settings.xml中配置,您可以传递maven构建步骤,以便它能够解析内部maven工件


希望它能起作用:)

TeamCity中的工件依赖项只是可以从一个构建传递到另一个构建的文件/归档。如果您不将它们解压缩到正确的文件夹中,Maven将找不到它们-这无论如何都不是个好主意

Maven通过存储库交换工件(同一个词,完全不同的东西)。本地代理或存储库代理(Nexus、Artifactory等)。您需要将您的依赖项发布到这样一个存储库中,以便maven能够找到它

如果在同一个代理上运行依赖项的构建(mvn安装),然后运行依赖项的构建,那么工作速度会更快。这样,工件将位于代理的本地maven存储库中。您可以在teamcity中的快照相关性中定义此限制。根本不需要工件依赖关系

So:buildA->buildB(快照依赖于buildA,在同一个代理上) 现在该做了

这只是目前的一个解决办法。maven的工件需要进入存储库。该存储库在teamcity的settings.xml中配置,您可以传递maven构建步骤,以便它能够解析内部maven工件


希望它能起作用:)

谢谢你的回复!我现在正在尝试使用变通方法。我已在同一代理上配置快照依赖项。但我仍然得到了这个错误:未能在项目Healthcheck上执行目标:无法解析项目的依赖项GrpId:App:jar:1.0-SNAPSHOT:找不到工件GrpId:resultExporterLib:jar:1.0-SNAPSHOT解决方案现在可以正常工作:-)缺少的部分是Maven build goal“install”,感谢您的回复!我现在正在尝试使用变通方法。我已在同一代理上配置快照依赖项。但我仍然得到了这个错误:未能在项目Healthcheck上执行目标:无法解析项目的依赖项GrpId:App:jar:1.0-SNAPSHOT:找不到工件GrpId:resultExporterLib:jar:1.0-SNAPSHOT解决方案现在可以正常工作:-)缺少的部分是Maven构建目标“安装”
"Depend on: " => package ResultsExporterLib
"Get artifacts from:" => "Latest Successful build"
"Artifacts rules: " => "+:ResultsExporterLib-1.0-SNAPSHOT-jar-with-dependencies.jar"