我的项目包含三个子项目,我的父pom看起来像:
<parent>
<groupId>org.sonatype.oss</groupId>
<artifactId>oss-parent</artifactId>
<version>7</version>
</parent>
<groupId>edu.cmu.sphinx</groupId>
<artifactId>sphinx4-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
现在我的项目需要依赖以下项目,该项目包含三个子项目,父项为pom。特别是,它已经有一个父母如下: https://github.com/instructure/canvas-lms/tree/06dfa7fb6ddeb0fc63a31c723586e620ebbfbe5d/vendor/plugins
<module>sphinx4</module>
我的问题是,如何在父pom文件中声明依赖项?我可以在父pom中添加另一个模块:
<project >
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.bwort.core</groupId>
<artifactId>bwort</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>wikipedia</artifactId>
<packaging>jar</packaging>
<repositories>
<repository>
<id>snapshots-repo</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>edu.cmu.sphinx</groupId>
<artifactId>sphinx4-core</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.cmu.sphinx</groupId>
<artifactId>sphinx4-data</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
但是由于这个库已经定义了自己的父“oss-parent”,那么我怎样才能将我的父pom作为其父级?
我的项目依赖这个项目的正确方法是什么?谢谢。
EDITTED:我的pom.xml
{{1}}
答案 0 :(得分:2)
不,你不要在你的pom中添加模块,这些模块引用其他人的模块。
执行mvn install
和/或mvn deploy
时,它会将pom.xml文件中定义的工件复制到本地或远程存储库中。所以希望你想依赖的项目可以在maven central中找到。
我建议将依赖关系管理部分添加到父pom.xml中:
<properties>
<sphinx.version>1.0-SNAPSHOT</sphinx>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>edu.cmu.sphinx</groupId>
<artifactId>sphinx4-module1</artifactId>
<version>${sphinx.version}</version>
</dependency>
<dependency>
<groupId>edu.cmu.sphinx</groupId>
<artifactId>sphinx4-module2</artifactId>
<version>${sphinx.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
在您自己的一个模块的pom.xml中,将您需要的依赖项添加到依赖项部分: 请注意,该版本现在已在父级中定义。
<dependencies>
<dependency>
<groupId>edu.cmu.sphinx</groupId>
<artifactId>sphinx4-module2</artifactId>
</dependency>
</dependencies>
我建议不要使用其他人应用程序的-SNAPSHOT版本 - 它通常会导致构建失败,具体取决于创建快照的时间和maven检索它的时间。
如果sphinx不在存储库中,您首先需要在本地mvn install
进行
我会推荐maven教程:
他们也解释了很多:)