如何在程序中分享依赖性

时间:2016-04-24 22:12:13

标签: java maven module

我和maven一起工作,我创建了一个库。我的库使用了一些依赖项,当需要使用我的库的程序时,我也需要使用依赖项,这是在我的库中定义的。 maven有可能吗?

例如pom A:

<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>group.id</groupId>
    <artifactId>library</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>

    </dependencies>
        <dependency>
            <groupId>some.group</groupId>
            <artifactId>some-artifact</artifactId>
            <version>${some.version}</version>
        </dependency>
    </dependencies>
</project>

并且当某个程序使用我的库时如下

<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>sk.bajky.reflection</groupId>
    <artifactId>library</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>

    </dependencies>
        <dependency>
            <groupId>group.id</groupId>
            <artifactId>library</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
</project>

我需要在pom A中指定的程序使用依赖性。

1 个答案:

答案 0 :(得分:0)

是的,有可能。有几个选择:

  1. 宣告:

    <dependencies>
      <dependency>
        <groupId>some.group</groupId>
        <artifactId>some-artifact</artifactId>
        <version>${some.version}</version>
      </dependency>
    </dependencies>
    

    sk.bajky.reflection:library POM中。

  2. 创建一个包含以下内容的parent POM:

    <dependencies>
      <dependency>
        <groupId>some.group</groupId>
        <artifactId>some-artifact</artifactId>
        <version>${some.version}</version>
      </dependency>
    </dependencies>
    

    并将其<parent>添加到您的每个POM中。

  3. 创建包含Dependency Management的父POM:

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>some.group</groupId>
          <artifactId>some-artifact</artifactId>
          <version>${some.version}</version>
        </dependency>
      </dependencies>
    </dependencyManagement>
    

    <parent>添加到您的每个POM中,并将以下内容添加到您的POM中:

    <dependencies>
      <dependency>
        <groupId>some.group</groupId>
        <artifactId>some-artifact</artifactId>
      </dependency>
    </dependencies>
    
  4. 创建一个父POM,其中包含依赖关系管理和POM要继承的依赖关系:

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>some.group</groupId>
          <artifactId>some-artifact</artifactId>
          <version>${some.version}</version>
        </dependency>
      </dependencies>
    </dependencyManagement>
    
    <dependencies>
      <dependency>
        <groupId>some.group</groupId>
        <artifactId>some-artifact</artifactId>
      </dependency>
    </dependencies>
    

    并将其<parent>添加到您的每个POM中。