簡體   English   中英

如何依賴這個Maven項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM