如何依赖这个maven项目

时间:2015-08-26 05:48:15

标签: maven cmusphinx maven-dependency-plugin

我的项目包含三个子项目,我的父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}}

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教程:

他们也解释了很多:)