使用 maven1,我使用扩展标签来告诉我的子项目使用他们的父配置。
在父项中声明的所有依赖项都可用于扩展(子)项目。
现在使用 maven2 我正在使用继承/组合功能,我必须在每个子项目中重新声明我的依赖项(减去版本号)。(请参阅如何在几个 maven-projects 中共享通用属性)
有没有办法告诉 maven 我想在所有孩子之间分享我的一些依赖关系?
使用 maven1,我使用扩展标签来告诉我的子项目使用他们的父配置。
在父项中声明的所有依赖项都可用于扩展(子)项目。
现在使用 maven2 我正在使用继承/组合功能,我必须在每个子项目中重新声明我的依赖项(减去版本号)。(请参阅如何在几个 maven-projects 中共享通用属性)
有没有办法告诉 maven 我想在所有孩子之间分享我的一些依赖关系?
现在使用 maven2 我正在使用继承/组合功能,我必须在每个子项目中重新声明我的依赖项(减去版本号)
不,你没有。在父 pom 中声明的依赖是继承的。
有没有办法告诉 maven 我想在所有孩子之间分享我的一些依赖关系?
只需<parent>
在子 POM 中声明元素。例如,对于这个父 POM:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.group.id</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>Demo - Parent</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<modules>
<module>child</module>
</modules>
</project>
而这个子模块的POM:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>my.group.id</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<name>Demo - Child</name>
<artifactId>child</artifactId>
<packaging>jar</packaging>
</project>
junit 依赖项按预期继承:
$ mvn 依赖:树 [INFO] 正在扫描项目... [INFO] 搜索带有前缀的插件的存储库:“依赖”。 [信息] --------------------------------------------- ------------------------- [INFO] 建筑演示 - 儿童 [INFO] 任务段:[依赖:树] [信息] --------------------------------------------- ------------------------- [信息] [依赖:树{执行:默认-cli}] [信息] my.group.id:child:jar:1.0-SNAPSHOT [信息] \- junit:junit:jar:3.8.1:test [信息] --------------------------------------------- ------------------------- [信息] 构建成功 [信息] --------------------------------------------- ------------------------- ...
我怀疑您在该<dependencyManagement>
部分中声明了依赖项(这有另一个目的)。