Intellj maven模块继承

时间:2017-08-06 09:16:48

标签: java maven intellij-idea

我已经阅读了文档,但仍然无法实现我的目标。要求非常简单。我有两个maven项目。 ProjectA ProjectB ProjectB 需要重用 ProjectA 中的一些常见配置和代码。我不想复制和粘贴它们,因为如果有任何变化,这将需要更新。那么,现在有哪些选择呢?我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

您可能有两种选择。

  • 使用 ProjectA 拥有 projectB

    的父级

    http://maven.apache.org/xsd/maven-4.0.0.xsd">     4.0.0

    Collectors.toMap

    因此,您的 projectB 将从第一个继承,其所有依赖关系构建/依赖关系管理。

  • 使用 ProjectA 依赖 projectB

    http://maven.apache.org/xsd/maven-4.0.0.xsd">     4.0.0

    <parent>
        <groupId>com.example</groupId>
        <artifactId>projectA</artifactId>
        <version>1.0</version>
    </parent>
    
       <artifactId>projectB</artifactId>
    

在这种情况下, projectB 将继承 projectA 所有来源和依赖项。

答案 1 :(得分:1)

我不认为这有一个灵丹妙药,但我们结合使用这两种方法:

  1. 多模块项目(如果项目已连接且您希望大量更改公共部分,则效果最佳):https://maven.apache.org/guides/mini/guide-multiple-modules.html
  2. 从projectA中提取要重复使用的部分,并将其作为独立工件发布到maven repo(本地/私有/公共 - 取决于您的用例)。

答案 2 :(得分:0)

我创建了一个多模块maven项目,但它总是编译找不到包。最后,我在这里找到了问题。 Maven Multi-module dependency package not found

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
    <execution>
        <goals>
            <goal>repackage</goal>
        </goals>
        <configuration>
            <classifier>exec</classifier>
        </configuration>
    </execution>
</executions>