詹金斯的传递依赖管理
transitive dependency management in jenkins
我有一个 maven project
,它有很多数据流处理器和 drop-wizard 服务。
其中,db-source
- 拥有所有 DAO
s 和 Entities
& client-source
- 拥有外部服务端点,这些被所有使用应用程序 在 project
。
到目前为止,这些依赖项由每个子应用程序单独添加到它们自己的 pom 中,现在我应该使用 <dependencyManagement>
在 project
s POM 上使用 <dependencyManagement>
进行通用版本控制。
这是表面上的项目结构
+ project
+ db-source - pom.xml => picks version from build.properties
+ client-source - pom.xml => picks version from build.properties
+ fabric - pom.xml => has db and client and there versions are picked from project_POM
+ the_pain_repo - pom.xml => uses fabric and picks its version from project_POM
+ project_POM
project_POM
包含用于 db-source
和 client-source
版本的 <dependencyManagement>
fabric
和其他回购协议( the_pain_repo
是提到的示例回购协议之一)
所以,如果你观察,<dependencyManagement>
如下
==> fabric -> project_POM
==> the_pain_repo -> fabric -> project_POM
现在,fabric 在从 project_POM
中选择版本后构建良好,但 the_pain_repo
抛出无法选择 db-source
(来自 fabric
)版本的错误。
错误:
[ERROR] Failed to execute goal on project inventory-processor: Could not resolve dependencies for project x.y.z:the_pain_repo:jar:1.7.4-SNAPSHOT: The following artifacts could not be resolved: x.y.z:db-source:jar:${db.source.version},
x.y.z:client-source:jar:${client.source.version}: Could not find artifact x.y.z:client-source:jar:${client.source.version} in systems-artifactory (http://artifactory.systems.com/content/groups/public) -> [Help 1]
[ERROR]
Jenkins 中的值:
Root POM : the_pain_repo/pom.xml
Properties File Path : the_pain_repo/build.properties
将父 pom 部署到您的 Maven 存储库(或工件)。您可以通过执行 mvn clean install
或 mvn -N clean install
(仅适用于父模块)来尝试将其部署到本地 .m2
我有一个 maven project
,它有很多数据流处理器和 drop-wizard 服务。
其中,db-source
- 拥有所有 DAO
s 和 Entities
& client-source
- 拥有外部服务端点,这些被所有使用应用程序 在 project
。
到目前为止,这些依赖项由每个子应用程序单独添加到它们自己的 pom 中,现在我应该使用 <dependencyManagement>
在 project
s POM 上使用 <dependencyManagement>
进行通用版本控制。
这是表面上的项目结构
+ project
+ db-source - pom.xml => picks version from build.properties
+ client-source - pom.xml => picks version from build.properties
+ fabric - pom.xml => has db and client and there versions are picked from project_POM
+ the_pain_repo - pom.xml => uses fabric and picks its version from project_POM
+ project_POM
project_POM
包含用于 db-source
和 client-source
版本的 <dependencyManagement>
fabric
和其他回购协议( the_pain_repo
是提到的示例回购协议之一)
所以,如果你观察,<dependencyManagement>
如下
==> fabric -> project_POM
==> the_pain_repo -> fabric -> project_POM
现在,fabric 在从 project_POM
中选择版本后构建良好,但 the_pain_repo
抛出无法选择 db-source
(来自 fabric
)版本的错误。
错误:
[ERROR] Failed to execute goal on project inventory-processor: Could not resolve dependencies for project x.y.z:the_pain_repo:jar:1.7.4-SNAPSHOT: The following artifacts could not be resolved: x.y.z:db-source:jar:${db.source.version},
x.y.z:client-source:jar:${client.source.version}: Could not find artifact x.y.z:client-source:jar:${client.source.version} in systems-artifactory (http://artifactory.systems.com/content/groups/public) -> [Help 1]
[ERROR]
Jenkins 中的值:
Root POM : the_pain_repo/pom.xml
Properties File Path : the_pain_repo/build.properties
将父 pom 部署到您的 Maven 存储库(或工件)。您可以通过执行 mvn clean install
或 mvn -N clean install
(仅适用于父模块)来尝试将其部署到本地 .m2