我有一个多模块Maven/Spring Boot(v2.3.3)应用程序,实现如下:
my-project (pom)
\__ my-api (jar) - rest api controllers
\__ my-core (jar) - entities, repositories and service beans
\__ my-db (jar) - DB migration (with Mongock)
项目和应用程序运行良好,没什么大不了的。“my-api”模块有一个像往常一样运行API的主Spring boot应用程序类。
问题是,最近我添加了“my db”模块来实现MongoDB迁移,以自动化CI部署。“my db”模块还有另一个主要的spring boot应用程序类,这是一个运行迁移过程的独立应用程序,我想在我的CI环境中实现自动化。
问题是,我的maven构建没有为“my db”模块生成fat可执行JAR,只为“my api”模块生成。
我错过什么了吗?
我的项目pom。xml:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
my-apipom.xml:
<build>
<finalName>my-api</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>my.ApiApplication</mainClass>
<executable>true</executable>
<layout>JAR</layout>
<fork>true</fork>
<skip>false</skip>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
我的核心pom。xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
我的db pom。xml:
<properties>
<start-class>my.DbMigrationApp</start-class>
</properties>
<build>
<finalName>my-db</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
看起来“my-db”pom文件的插件块中缺少此配置。
<configuration>
<skip>false</skip>
</configuration>
我有一个多模块maven项目。它的设置是正确的,因为当我运行maven clean install时,它成功地构建了所有模块。Webapp包含我需要在web服务中具备的通用功能,因此我将其作为maven依赖项包含在web服务中。 MavenReactor摘要: Eclipse甚至会将webapp项目到web服务的部署程序集。
我有一个简单的Maven项目,看起来像这个项目视图 有一个主要的pom。xml如下所示: 有两个模块-核心和测试。核心模块pom.xml: 测试模块pom。xml 我想使用核心内部测试的代码。这种依赖性看起来是正确的。该项目已生成,没有错误: 但是,当我在测试中尝试从core导入一个类时,找不到该类。
父项目为demo-mybatis子模块为mybatis-dao、demo-service。demo-mybatis pom.xml如下: 4.0.0 pom mybatis-DAO Demo-service Demo-mybatis-app org.springframework.Boot spring-boot-starter-parent 2.3.2.release com.example D
我有一个基本的SpringBoot应用程序。使用Spring初始值设定项、嵌入式Tomcat、Thymeleaf模板引擎,并将包作为可执行的JAR文件。是一个带有Spring Boot的多模块项目,该项目将有3个模块。这里是父模块pom。xml 这里是模块核心 这里是模块web: 从父根目录,我使用以下方法生成所有模块: 但问题是tdk-web-0.0.2-SNAPSHOT。jar不包含tdk-c
情况是,我有两个结构相同的Maven多模块项目: 当我构建项目1时,我看到首先构建的是parent(顺序是parent->module1->module2)。然而,对于项目2,最终生成父级(顺序为module1->module2->parent)。为什么两个项目的建造订单不同?此外,如何手动控制生成顺序? 更新1: 两个父项目都是简单的POM项目,没有源代码,所以我无法按照依赖关系图解释构建顺序。
我曾广泛使用过Maven 目前有5个不同的maven项目,每个项目都有一个不同的pom.xml。到目前为止,它们之间存在依赖关系,如果需要,每一个都指向 中的另一个。 现在我们不喜欢的是 当我们发布子projectA时,我们需要手动修改所有将projectA作为依赖项的项目以使用新版本。Saw Maven有一个版本插件,不知道这会有什么帮助。 作为解决方案,我希望在POM之间有一个更干净的组织,并