Spirng boot maven多模块打包踩坑
来源:互联网 发布:二维码扫描价格软件 编辑:程序博客网 时间:2024/05/16 23:47
最近折腾了两次spring boot在maven下的多模块打包,踩了很多坑,现在记录如下。
项目目录:
- 项目 P
- 模块 A
- 模块 B
- 公有基础模块 C
- Mybatis基础模块 M
父pom.xml文件:
<!--版本号--> <groupId>com.parent</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <!--管理所有的模块--> <modules> <modules>C</modules> <modules>M</modules> </modules> <!--指定项目的spring boot的版本--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.M5</version> </parent> <!--指定项目中公有的模块--> <dependencyManagement> <dependencies> <dependency> <groupId>com.module</groupId> <artifactId>c</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>com.module</groupId> <artifactId>m</artifactId> <version>${project.version}</version> </dependency> </dependencies> </dependencyManagement> <!--指定jdk的版本为1.8,默认为1.6--> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <!--指定项目中公有的依赖--> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> </dependencies> <!--指定使用maven打包--> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.19.1</version> <configuration> <skipTests>true</skipTests> <!--默认关掉单元测试 --> </configuration> </plugin> </plugins> </build>
模块A的pom.xml
<groupId>com.module</groupId> <artifactId>a</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <!--指定父模块,需要注意的是,这里要指定父模块pom.xml的相对路径--> <parent> <groupId>com.parent</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <!--spring boot打包的话需要指定一个唯一的入门--> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- 指定该Main Class为全局的唯一入口 --> <mainClass>com.module.a.Application</mainClass> <layout>ZIP</layout> </configuration> <executions> <execution> <goals> <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中--> </goals> </execution> </executions> </plugin> </plugins> </build>
模块B的pom.xml
同A即可
模块C的pom.xml
如果是共有模块的话,不需要打包,否则会报错,因为其他模块在打包的时候会自动添加依赖进去,如果这里打包了,其他的模块就找不到该依赖了。
<groupId>com.module</groupId> <artifactId>c</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <!--指定父模块,需要注意的是,这里要指定父模块pom.xml的相对路径--> <parent> <groupId>com.parent</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent>
模块M的pom.xml
如果项目中使用的Mybatis的话,肯定是作为一个单独的模块来处理的,这个Mybatis是需要打包的
<groupId>com.module</groupId> <artifactId>m</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <!--指定父模块,需要注意的是,这里要指定父模块pom.xml的相对路径--> <parent> <groupId>com.parent</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <!--mybatis的打包方式--> <build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <executions> <execution> <id>Generate MyBatis Artifacts</id> <phase>none</phase> <goals> <goal>generate</goal> </goals> </execution> </executions> <configuration> <overwrite>true</overwrite> </configuration> </plugin> </plugins> </build>
打包
按照上面的配置好以后,执行下面的命令就好了
mvn clean package
但是如果使用了多个模块,上面的命令是会吧全部的模块都执行打包的,如果只是打包某个模块的话,可以用
mvn -pl A -am install
阅读全文
0 0
- Spirng boot maven多模块打包踩坑
- spirng-boot不能打包
- spring boot在maven下的多模块打包
- Maven项目多模块打包
- Maven(spring boot)多环境打包
- maven打造多模块spring boot项目
- Maven 搭建spring boot多模块项目
- maven多模块工程打包部署
- maven多web模块打包问题
- Maven多模块工程打包成war
- spirng boot 整合mybatis
- maven打包案例-spring boot
- Spring-boot web 工程构建,并把maven子项目模块依赖jar打包,笔记
- spring boot maven多模块项目编写单元测试
- Spirng Boot 的 helloWorld 项目
- Spirng Boot之HTTPS配置
- MAVEN多模块打包,自动部署到tomcat
- 使用myeclipse打包Spring Boot Maven工程
- LUA中的协成特性
- 商品促销倒计时效果实现
- Python 运算操作
- Flex布局
- CollapsingToolbarLayout源码分析
- Spirng boot maven多模块打包踩坑
- mnemosyne 读写模块源码分析
- 全连接层
- 快速排序java
- git 常用命令(自己整理)
- java开发-批量线程同步
- IT校招之速成经验
- java中jxl导出数据到excel的例子
- python基础-迭代器、for底层机制、生成器、list结合yield、__call__、yield函数列表