如何将两个Maven模块连接在一起?

时间:2015-05-26 19:40:00

标签: java maven

我有父Maven模块:

<?xml version="1.0" encoding="UTF-8"?>
<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>com.test</groupId>
    <artifactId>atata</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>    
    <modules>
        <module>core</module>
        <module>runner</module>
    </modules>   
</project>

它有两个孩子。

<parent>
    <artifactId>atata</artifactId>
    <groupId>com.test</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

<modelVersion>4.0.0</modelVersion>
<artifactId>runner</artifactId>

<parent>
    <artifactId>atata</artifactId>
    <groupId>com.test</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

<modelVersion>4.0.0</modelVersion>
<artifactId>core</artifactId>

Core我有一个代码:

public class A {
    public void fun() {
        System.out.println("Hello!");
    }
}

Runner模块中,我使用A类:

public class Runner {
    public static void main(String[] args) {
        new A().fun();
    }
}

但是现在我的Runner没有看到班级A。有可能让它可见吗?

2 个答案:

答案 0 :(得分:4)

Core pom:

中创建对Runner的依赖关系
<dependencies>
    <dependency>
        <groupId>com.test</groupId>
        <artifactId>core</artifactId>
        <version>${project.version}</version>
    </dependency>
</dependencies>

请注意,依赖项只能采用单向方式,因此您不能依赖Runner Core,因为它会导致不允许循环依赖。看起来你从模块名称开始判断就好了。

答案 1 :(得分:0)

添加到跑步者的pom.xml

<dependencies>
......
    <dependency>
      <groupId>com.test</groupId>
      <artifactId>core</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
 ......
</dependencies>