这实际上比Spring Boot更像是一个Maven问题。当你有一个多模块项目时,Maven仍然会为每个模块创建单独的构件,因此您仍然可以将它们作为其他地方的依赖项引用。
例如在我使用Spring启动的设置中,我有父项目和它下面的模块。大多数模块都是jar工件,一些模块依赖于项目中的其他模块,当然也有一些外部依赖。通过使用父级,我们可以使用父级中的占位符标准化依赖项中使用的一些版本。由于这些工件仍然是单独构建和发布的,因此您可以在其他项目中引用它们,这是我相信您所要求的。
例如(只是主要的标签,而不是全部):
家长:
<groupId>com.somecompany</groupId>
<artifactId>project-parent</artifactId>
<packaging>pom</packaging>
<version>1.1.2-SNAPSHOT</version>
<modules>
<module>module1</module>
<module>module2</module>
</modules>
模块1:
<parent>
<groupId>com.somecompany</groupId>
<artifactId>project-parent</artifactId>
<version>1.1.2-SNAPSHOT</version>
</parent>
<groupId>com.somecompany.tools</groupId>
<artifactId>project-tools-core</artifactId>
<version>1.1.2-SNAPSHOT</version>
<packaging>jar</packaging>
单词数:
<parent>
<groupId>com.somecompany</groupId>
<artifactId>project-parent</artifactId>
<version>1.1.2-SNAPSHOT</version>
</parent>
<groupId>com.somecompany.apps</groupId>
<artifactId>project-webapp</artifactId>
<version>1.1.2-SNAPSHOT</version>
<packaging>war</packaging>
<!-- dependency on other module -->
<dependency>
<groupId>com.somecompany.tools</groupId>
<artifactId>project-tools-core</artifactId>
<version>${project.version}</version>
</dependency>
一些其他项目:
<groupId>com.somecompany.apps</groupId>
<artifactId>project-webapp-services</artifactId>
<version>1.3.0-SNAPSHOT</version>
<packaging>war</packaging>
<!-- dependency on other module which is published -->
<dependency>
<groupId>com.somecompany.tools</groupId>
<artifactId>project-tools-core</artifactId>
<version>1.1.1</version>
</dependency>
因此,在这种情况下,假设您已经发布了父代及其模块的版本1.1.1,您可以让其他项目引用任何已发布的工件。也许这是您错过的发布和发布步骤。