Maven reactor:使用Spring boot starter pom的pom

时间:2014-11-28 16:06:10

标签: spring maven spring-boot maven-reactor

我有一个包含多个模块的项目。其中一些使用弹簧靴,另一些是没有任何弹簧依赖的普通罐。 所以我为每个模块设置了父pom.xml。问题在于春季启动项目。

我在每个Spring启动项目中列出了here 所列的scope=import弹簧启动依赖关系。它是否正确?或者我应该将它移到我的父POM中吗?

我遇到的问题 1.当我从顶层文件夹运行mvn包时,它不会重新打包弹簧启动罐。 我的春季启动项目列出了其他春季启动依赖项。使用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>

我也试过在我的春季启动项目中手动运行mvn spring-boot:repackage - 但错误出现在:repackage failed: Source must refer to an existing file -> [Help 1]

1 个答案:

答案 0 :(得分:6)

如果你不从spring boot parent继承,你必须在你的pom的plugins部分声明spring-boot-maven-plugin才能重新打包。

您必须在插件中添加以下内容:

 <executions>
     <execution>
         <goals>
             <goal>repackage</goal>
         </goals>
     </execution>
  </executions>

您应该将插件放在父pom中的pluginManagement下,然后添加

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven‌​-plugin</artifactId>
</plugin> 

每个构建部分下的每个模块都依赖于弹簧启动。