[英]How to depend on this maven project
我的項目包含三個子項目,而我的父pom如下所示:
<groupId>com.bwort.core</groupId>
<artifactId>bwort</artifactId>
<packaging>pom</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>bwort</name>
<modules>
<module>proj1</module>
<module>proj2</module>
<module>proj3</module>
</modules>
現在,我的項目需要將下面的這個項目(包括三個子項目)與一個父pom關聯起來。 特別是,它已經具有如下的父項: https : //github.com/cmusphinx/sphinx4/blob/master/pom.xml
<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文件中聲明依賴關系? 我可以向我的父pom添加另一個模塊:
<module>sphinx4</module>
但是,由於該庫已經定義了自己的父級“ oss-parent”,那么如何使父級pom成為其父級呢?
我的項目依賴此項目的正確方法是什么? 謝謝。
編輯:我的pom.xml
<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>
不,您不要在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教程:
他們也解釋了很多:)
如果您的pom.xml具有以下內容,則應該可以正常工作:
<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>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>my-app</name>
<url>http://maven.apache.org</url>
<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>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.