【发布时间】:2015-01-27 07:59:31
【问题描述】:
我有一个包含多个模块的项目。其中一些使用 spring boot,其他是没有任何 spring 依赖的普通 jars。 所以我对每个模块都有一个父 pom.xml 设置。麻烦在于 Spring Boot 项目。
我已将 Spring Boot 依赖项设置为 scope=import,如列出的 here在每个 Spring Boot 项目中。它是否正确?还是应该将它移到我的父 POM 中?
我遇到的问题 1.当我从顶层文件夹运行 mvn package 时,它不会重新打包 spring boot jars。 2. 我的 Spring Boot 项目列出了其他 Spring Boot 依赖项。以 spring boot starter 作为父级,他们不需要版本标签。现在他们做到了。我已将其定义为父 pom 中的属性并添加了版本标签,但想知道这是否更好。
感谢阅读。
更新对评论 #1 的回复:我的父 POM 中有 spring-boot-maven-plugin,如下所示
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.1.9.RELEASE</version>
</plugin>
</plugins>
<pluginManagement>
....
</build>
我也尝试在我的 Spring Boot 项目中手动运行 mvn spring-boot:repackage,但 :repackage failed: Source must refer to an existing file -> [Help 1] 会出错
【问题讨论】:
-
至于 1) 如果你不从 spring boot 父级继承,你必须在 pom 的 plugins 部分声明 spring-boot-maven-plugin 以便重新打包跨度>
-
@orid - 已回复更新
-
您必须将以下内容添加到插件中:
<executions><execution><goals><goal>repackage</goal></goals</execution></executions>。将插件放在父pom中的pluginManagement下,并在每个构建部分下添加<plugin><groupId>org.springframework.boot</groupId<artifactId>spring-boot-maven-plugin</artifactId></plugin>对于每个依赖于spring boot的模块 -
谢谢 - 成功了。如果您可以将其添加为答案,我会接受。
标签: spring maven spring-boot maven-reactor