使用maven1,我使用extend标签告诉我的孩子项目使用他们的父配置.
在父项中声明的所有依赖项都可用于扩展(子项)项目.
现在使用maven2我正在使用继承/组合功能,我必须在每个子项目中重新声明我的依赖项(减去版本号).
(见how-to-share-common-properties-among-several-maven-projects)
有没有办法告诉maven我想在所有孩子中分享我的一些依赖?
最佳答案
Now with maven2 I’m using the inheritance/composition feature and I have to redeclare my dependencies (minus the version number) in every child project
不,你没有.在父pom中声明的依赖项是继承的.
Is there a way to tell maven that I want to share some of my dependencies among all my children ?
只需声明< 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 dependency:tree [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'dependency'. [INFO] ------------------------------------------------------------------------ [INFO] Building Demo - Child [INFO] task-segment: [dependency:tree] [INFO] ------------------------------------------------------------------------ [INFO] [dependency:tree {execution: default-cli}] [INFO] my.group.id:child:jar:1.0-SNAPSHOT [INFO] \- junit:junit:jar:3.8.1:test [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ ...
我怀疑你在the <dependencyManagement>
section中声明了依赖(这还有其他目的).
相关文章
转载注明原文:maven-2 – Maven2共享父节点和子节点之间的依赖关系(不重新声明子节点中的依赖关系) - 代码日志