3

我有一个包含多个模块的项目。其中一些使用 spring boot,其他是没有任何 spring 依赖的普通 jars。所以我对每个模块都有一个父 pom.xml 设置。麻烦在于 spring boot 项目。

我已经设置了每个 spring boot 项目中列出的 spring boot依赖scope=import项。它是否正确?或者我应该把它移到我的父 POM 中吗?

我遇到的问题 1. 当我从顶层文件夹运行 mvn package 时,它​​不会重新打包 spring boot jars。2. 我的 Spring Boot 项目列出了其他 Spring Boot 依赖项。以 spring boot starter 作为父级,他们不需要版本标签。现在他们做到了。我已将其定义为父 pom 中的属性并添加了版本标签,但想知道这是否更好。

谢谢阅读。

更新对评论 #1 的回复:我的spring-boot-maven-plugin父 POM 中有如下

<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在我的 Spring Boot 项目中手动运行 - 但错误是:repackage failed: Source must refer to an existing file -> [Help 1]

4

1 回答 1

6

如果您不从 spring boot 父级继承,则必须在 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> 

在每个依赖于 spring boot 的模块的每个构建部分下。

于 2014-12-01T07:21:51.523 回答