我有以下结构:
main/
--pom.xml
--common/
--pom.xml
--core/
--pom.xml
common 和 core 都是主项目的模块,所以 main/pom.xml 是这样的:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>main</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>Main APP</name>
<url>http://maven.apache.org</url>
<modules>
<module>common</module>
<module>core</module>
</modules>
</project>
除此之外,common/pom.xml 应该包含所有未来模块之间的一些公共依赖关系。这是 common/pom.xml 现在的样子:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>common</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>mod1</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>com.mycompany.app</groupId>
<artifactId>main</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>common-dependency</groupId>
<artifactId>common</artifactId>
<version>3.8.1</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
最后,模块核心应该使用公共模块中定义的依赖关系,所以这是我在 core/pom.xml 中所做的:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>core</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>Core</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>com.mycompany.app</groupId>
<artifactId>main</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.mycompany.app</groupId>
<artifactId>common</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
我想要的是,当我mvn dependency:copy-dependencies
在核心模块中运行时,maven 也应该从 common 模块中复制所有依赖项(例如 common-dependency:common)。但实际上发生的是它没有复制任何依赖关系,所以就像核心模块根本没有任何依赖关系一样。
我在这里想念什么?