我有一个使用Maven多模块项目,其设计方式类似以下SO帖子中第一个答案:Multi-module maven with Spring Boot
现在我想要一个通用的Maven模块,可以包含一些模型,供多个微服务使用。如果我将这个通用项目作为一级父POM的子项目(这样所有由Boot注入的依赖项,如JPA、Jackson等都可以在通用项目中使用),则STS/Spring会检测到它是一个Boot应用程序,并在Maven构建时抱怨没有主类。
请问有人能建议我如何做到这一点?
当前代码: parent pom.xml:(仅包含相关部分)
请问有人能建议我如何做到这一点?
当前代码: parent pom.xml:(仅包含相关部分)
<project>
<name>...</name>
<groupId>...</groupId>
<artifactId>...</artifactId>
<packaging>pom</packaging>
<version>...</version>
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>Brixton.M3</version>
<relativePath />
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
child(通用模块)pom.xml(仅涉及相关部分),不是引导应用程序:
<project>
<artifactId>...</artifactId>
<version>...</version>
<name>...</name>
<parent>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
</parent>
</project>
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> <configuration> <skip>true</skip> </configuration> </execution> </executions> </plugin> </plugins> </build>
然而,这降低了我的构建时间,因为常见模块不再被重新打包为可执行JAR文件。 - Shashank Singhal