【发布时间】:2021-05-27 02:09:45
【问题描述】:
我有多个spring boot项目,每个项目都是独立的,有自己的CICD管道。
这些项目需要一些通用类,我已经创建了一个带有通用类的单独项目。
Parent
pom.xml (with packaging)
lib-project
pom.xml
project-1
pom.xml
project-2
pom.xml
我可以轻松地从父目录构建项目,它会构建所有项目
parent$ mvn clean package
它会生成所有的jar文件并将它们放在各自的项目目标文件夹中
我的问题是我无法在父级别启动此操作,这必须从每个项目的自己的管道中启动。
和
我不能使用任何本地或远程存储库,使用 mvn clean install 将依赖 jar 放入 m2 中,然后将其称为依赖项
我想从相关项目目录构建它
parent/project-1$ mvn clean package
它显示以下错误:
Could not resolve dependencies for project com.test.multiple:project-1:jar:0.0.1-SNAPSHOT: Could not find artifact com.test.multiple:lib-project:jar:0.0.1-SNAPSHOT
我对 project-1 编译的期望
- 检查 project-1 是否存在依赖项
- 转到 ../lib-project
- 在目标文件夹(或与我们的项目相关的任何位置)中编译并构建它
- 将此生成的 jar 添加到“project-1”依赖项中
- 编译并构建“project-1”jar 文件。
父 Pom 配置
<project ...>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.test.multiple</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>lib-project</module>
<module>project-1</module>
</modules>
</project>
** Lib 项目 pom **
<project ...>
<parent>
<groupId>com.test.multiple</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.test.multiple</groupId>
<artifactId>lib-project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>lib-project</name>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Project-1 pom
<project ...>
<parent>
<groupId>com.test.multiple</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.test.multiple</groupId>
<artifactId>project-1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>project-1</name>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.test.multiple</groupId>
<artifactId>lib-project</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
【问题讨论】:
-
"我不能使用任何本地或远程存储库,使用 mvn clean install 将依赖的 jar 放在 m2 中,然后将其称为依赖" 然后你需要解决这个问题。其他一切都只是一个丑陋的黑客。
标签: java spring-boot maven multi-module