使用 Maven 打包时常见的注意事项


1. 打包编译文件

有时我们会在src/main/java目录下的相关包下添加xml文件,一般是MyBatisxml映射文件。

使用 IDEA 中 Maven 的compile编译的时候,编译的target目录下并没有这些xml文件,测试接口访问的时候会出现org.apache.ibatis.binding.BindingException。同理,在package打包的时候,在jar包中也找不到这部分xml文件。
在这里插入图片描述
所以在 IDEA 中需要在 Maven 项目的pom.xml中进行配置resources

<build>
	<plugins>
		<!--SpringBoot项目的打包编译插件-->
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
	</plugins>
	<resources>
		<!-- 将src/main/java下的xml资源编译到classes下 -->
		<resource>
			<directory>src/main/java</directory>
			<includes>
				<include>**/*.xml</include>
			</includes>
		</resource>
		<!-- 将src/main/resources下的资源编译到classes下 -->
		<resource>
			<directory>src/main/resources</directory>
			<includes>
				<include>**/*.*</include>
			</includes>
		</resource>
	</resources>
</build>

2. 打包跳过测试

使用 Maven 打包的时候,可能会因为单元测试失败而导致打包失败,这时候就需要跳过单元测试。Maven 跳过单元测试有三种方法。

2.1. 命令行方式

我们可以用两种命令来跳过测试

mvn clean install -DskipTests
mvn clean install -Dmaven.test.skip=true

skipTests不执行测试用例,但会编译测试用例类生成的 class 文件到target/test-classes下。即跳过单元测试,但是会继续编译测试类。

maven.test.skip=true不执行测试用例,也不编译测试用例类。即不但跳过单元测试的运行,也跳过测试代码的编译。

2.2. pom 配置

可以在pom.xml中添加如下配置来跳过测试:

<build>
	<plugins>
		<!-- maven 打包时跳过测试 -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-surefire-plugin</artifactId>
			<configuration>
				<skip>true</skip>
			</configuration>
		</plugin>
	</plugins>
<build>

如果是用的 SpringBoot 项目的spring-boot-maven-plugin

<build>
	<plugins>
		<!--SpringBoot项目的打包编译插件-->
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
	</plugins>
</build>

则只需要在properties标签中添加skipTests即可。

<properties>
    <skipTests>true</skipTests>
</properties>

2.3. IDEA 配置

2.3.1. 手动设置(常用,方便)

Maven 命令栏的工具栏有个下图中的图标,这个图标就是Skip Tests。点击选中,会发现test按钮变灰色了,再使用Lifecycle中的package打包就会跳过测试。
在这里插入图片描述

2.3.2. 全局配置

直接在设置中配置 Maven 的VM Options,添加上面提到的命令行的两个命令中的一个就行:
在这里插入图片描述

3. 常用命令

#先clean,再打包发布到idc私服,-pl指定需要打包的模块,-P指定需要发布的目标私服ID
mvn clean deploy -pl data-search -Pidc
#先clean,再打包安装到本地maven仓库,-pl指定需要打包的模块。
mvn clean install -pl data-common
#先clean,再打包,并跳过测试,-pl指定需要打包的模块,
mvn clean package -pl data-govern -Dmaven.test.skip=true
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值