首页 > 解决方案 > 多模块 maven 项目 - 将一个模块用作依赖项

问题描述

我给出了以下结构(Maven + Spring)。对于DependencyService我只对某些模型(Java 类,我想重用而不仅仅是复制和粘贴)感兴趣。由于一些 docker 的东西我无法DependencyService从 eclipse 运行,我必须设置几件事。这就是为什么我只想使用类而不包括整个项目的原因。

给定以下结构:

MainFolder
 |
  ----MainApplication
          |
          ----Backend1
               |
               ----pom.xml
          |
          ----Backend2
               |
               ----pom.xml
 |
 ----DependencyService
          |
          ----someModelsAreInHere
          |
          ----pom.xml
 |
 ----pom.xml

目前 pom 的相关部分如下所示:

主文件夹 Pom

<!-- Inherit defaults from Spring Boot -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.0</version>
</parent>
<modules><module>Backend1</module><module>Backend2</module></modules>
...
<!-- root pom settings -->
<groupId>GROUP</groupId>
<artifactId>MainProject</artifactId>
<version>${revision}</version>
<packaging>pom</packaging>
<name>MainProjectName</name>
...
<!-- Manages Dependencies -->
<dependencyManagement>
    <dependencies>      
        <dependency>  <!-- Import the dependency here -->
            <groupId>GROUP.MainProject</groupId>
            <artifactId>DependencyService</artifactId>
            <version>${dependency.service.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
... </project>

以Backend1为例,Backend1、Backend2和DependencyService的pom.xml看起来很相似。

<!-- Inherit defaults from MainFolder -->
<parent>
    <artifactId>MainProject</artifactId>
    <groupId>GROUP</groupId>
    <version>${revision}</version>
</parent>


<!-- data-processor pom settings -->
<groupId>GROUP</groupId>
<artifactId>backend1</artifactId>
<name>Backend1Name</name>
<packaging>jar</packaging>
<version>${revision}</version>

    <!-- Add required dependencies -->
<dependencies>    
    <!--  include DependencyService here but JUST for the classes, not for compiling! -->
    <dependency>
        <groupId>GROUP.MainProject</groupId>
        <artifactId>dependencyService</artifactId>
    </dependency>
</dependencies>

问题

如何在编译 Backend1 和 Backend2 时包含使用其中的类但不编译它DependencyService?(因为它不会在没有 docker 等的情况下编译...)Backend1Backend2

标签: springeclipsemaven

解决方案


推荐阅读