Maven 打包命令(1)

本文介绍如何使用Maven构建工具来打包WAR文件,并通过设置参数排除测试代码部分,确保部署包精简且不含测试组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Maven 打war包不包括test部分

mvn clean package -Dmavne.test.skip=true
<think>嗯,用户想知道如何通过Maven打包生成JAR文件,特别是使用mvn package命令。首先,我得回忆一下Maven的基本打包流程。记得Maven默认会生成JAR包,但有时候可能需要配置pom.xml文件,特别是当项目是Spring Boot应用或者需要包含依赖的时候。 首先,用户可能已经知道基本的命令,比如mvn clean package,但可能遇到问题,比如生成的JAR包不在target目录,或者没有包含依赖。这时候需要检查pom.xml中的插件配置,比如maven-jar-plugin或者spring-boot-maven-plugin。另外,用户提到的引用里提到了使用maven-assembly-plugin来打包包含依赖的JAR,这也是需要注意的地方。 然后,用户可能对如何指定主类有疑问,这需要在pom里配置主类信息。还有,如果测试影响了打包,可能需要跳过测试,使用-DskipTests参数。引用中的几个例子也提到了这一点,比如mvn clean install -Dmaven.test.skip=true。 另外,用户可能遇到的问题包括生成的JAR包名称不符合预期,这时候需要配置finalName标签,如引用4所示。还有,有时候生成的JAR包没有包含依赖,导致运行时报类找不到,这时候需要assembly插件或者spring boot的插件来打包成可执行的JAR。 总结一下,回答需要分步骤:首先是基本命令,然后是配置pom.xml,接着是处理测试,最后是常见问题解决。同时,要引用提供的参考资料来支持每个步骤,确保用户能正确操作,并解决可能遇到的问题。</think>### 如何通过Maven打包生成JAR文件? #### 1. **基础打包命令** 使用Maven生成JAR文件的核心命令是: ```bash mvn clean package ``` - **`mvn clean`**:清理`target`目录中的旧构建文件[^1]。 - **`mvn package`**:根据`pom.xml`配置编译代码并打包成JAR文件,默认生成在`target`目录下[^1]。 #### 2. **配置`pom.xml`** - **指定主类**(适用于可执行JAR): 在`pom.xml`中添加`spring-boot-maven-plugin`(Spring Boot项目)或`maven-jar-plugin`(普通Java项目): ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.example.MainApplication</mainClass> </configuration> </plugin> </plugins> </build> ``` 若未配置主类,生成的JAR可能无法直接运行[^1]。 - **自定义JAR包名称**: 通过`<finalName>`标签修改输出文件名: ```xml <build> <finalName>custom-name</finalName> </build> ``` 例如,生成`custom-name.jar`而非默认的`artifactId-version.jar`[^4]。 #### 3. **包含依赖项的JAR** 若需将所有依赖打包到单个JAR中(如可运行程序),使用`maven-assembly-plugin`: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.example.MainClass</mainClass> </manifest> </archive> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> ``` 执行后会在`target`目录生成`*-jar-with-dependencies.jar`,包含所有依赖。 #### 4. **跳过测试** 若测试用例影响打包,可通过以下命令跳过: ```bash mvn clean package -DskipTests # 编译测试代码但不执行 mvn clean package -Dmaven.test.skip=true # 完全跳过测试 ``` 适用于紧急打包或测试环境不完整的场景[^2][^3]。 #### 5. **验证结果** - **查找JAR文件**: ```bash ls target/*.jar ``` 若未找到文件,检查Maven控制台输出路径或`pom.xml`配置[^1]。 - **运行JAR**: ```bash java -jar target/custom-name.jar ``` --- ### 常见问题 1. **生成的JAR包缺失依赖?** 需使用`maven-assembly-plugin`或`spring-boot-maven-plugin`打包依赖项[^1]。 2. **JAR包无法执行?** 检查`pom.xml`中是否配置了主类(`<mainClass>`),或尝试手动指定: ```bash java -cp target/custom-name.jar com.example.MainClass ``` 3. **打包后文件未更新?** 先执行`mvn clean`清理旧文件,再重新打包。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值