maven打包插件配置

本文介绍了如何使用Maven进行可执行jar文件和本地jar包的打包配置,包括插件的引入和设置。

一、maven打包可执行jar文件,需要引入插件

<plugin>
	<artifactId>maven-assembly-plugin</artifactId>
	<configuration>
		<appendAssemblyId>false</appendAssemblyId>
		<descriptorRefs>
			<descriptorRef>jar-with-dependencies</descriptorRef>
		</descriptorRefs>
		<archive>
			<manifest>
				<!-- 此处指定main方法入口的class -->
				<mainClass>WikipediaAnalysis</mainClass>
			</manifest>
		</archive>
	</configuration>
	<executions>
		<execution>
			<id>make-assembly</id>
			<phase>package</phase>
			<goals>
				<goal>assembly</goal>
			</goals>
		</execution>
	</executions>
</plugin>

二、maven打包指定本地jar包

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-jar-plugin</artifactId>
	<configuration>
		<archive>
			<manifest>
				<addClasspath>true</addClasspath>
				<classpathPrefix>lib/</classpathPrefix>
				<mainClass>WikipediaAnalysis</mainClass>
			</manifest>
		</archive>
	</configuration>
</plugin>
<!-- 拷贝依赖的jar包到lib目录 -->
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-dependency-plugin</artifactId>
	<executions>
		<execution>
			<id>copy</id>
			<phase>package</phase>
			<goals>
				<goal>copy-dependencies</goal>
			</goals>
			<configuration>
				<outputDirectory>
					${project.build.directory}/lib
				</outputDirectory>
			</configuration>
		</execution>
	</executions>
</plugin>

 

<think>好的,我现在要帮助用户了解如何配置和使用Maven打包插件。首先,我需要回忆一下Maven常用的打包插件有哪些,以及它们各自的用途。根据用户提供的引用内容,提到了maven-jar-plugin、maven-assembly-plugin、maven-shade-plugin,还有spring-boot-maven-plugin等其他插件。 首先,我应该明确每个插件的基本功能。例如,maven-jar-plugin是默认的,用于生成普通的JAR包,但不会包含依赖。而maven-assembly-plugin可以生成包含依赖的JAR,或者分发包。maven-shade-plugin则更强大,能处理依赖冲突,适合构建可执行JAR。spring-boot-maven-plugin是专门用于Spring Boot项目的,可以生成可执行的Fat JAR。 接下来,用户可能想知道如何配置这些插件。需要给出具体的pom.xml配置示例,比如如何声明插件版本,如何配置主类,如何指定打包方式。同时,要强调不同插件的适用场景,比如如果项目需要包含所有依赖,应该选择assembly或shade插件,而如果是Spring Boot项目则使用spring-boot插件。 还需要注意用户提到的引用内容,比如引用[1]里提到maven-jar-plugin不会打包依赖,引用[2]说明需要手动处理依赖路径,引用[3]列举了多种插件。因此,在回答中需要对比这些插件,帮助用户理解选择哪个更适合他们的需求。 另外,用户可能需要知道基本的操作步骤,比如在pom.xml的build部分添加插件配置,执行mvn package命令打包。可能需要给出每个插件配置示例,并说明生成的文件类型和存放路径。 最后,用户可能遇到的问题包括依赖未正确打包、主类未指定导致无法运行、插件版本兼容性等,应该在注意事项里提醒这些常见问题,并给出解决方法,比如检查插件配置、确认主类路径是否正确等。 总结一下,回答的结构应该是先介绍常用插件及其用途,然后分步骤说明配置方法,给出代码示例,接着比较不同插件的适用场景,最后列出注意事项和相关问题。这样用户就能系统地了解如何选择、配置和使用Maven打包插件了。</think>### 如何配置和使用Maven打包插件Maven打包插件用于将项目代码、资源及依赖打包成特定格式(如JAR、WAR等)。以下是常用插件配置和使用方法: --- #### 一、常用插件配置示例 1. **maven-jar-plugin** **用途**:生成标准JAR文件(不包含依赖)[^1][^2]。 **配置示例**: ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.3.0</version> <configuration> <!-- 指定主类 --> <archive> <manifest> <mainClass>com.example.Main</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> ``` **使用命令**:`mvn package` **输出路径**:`target/[项目名]-[版本].jar` 2. **maven-assembly-plugin** **用途**:生成包含依赖的“Fat JAR”或分发包[^2][^3]。 **配置示例**: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.6.0</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.example.Main</mainClass> </manifest> </archive> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> ``` **使用命令**:`mvn package` **输出路径**:`target/[项目名]-[版本]-jar-with-dependencies.jar` 3. **maven-shade-plugin** **用途**:生成可执行JAR,解决依赖冲突(如重复类)。 **配置示例**: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.5.0</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.example.Main</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> ``` **使用命令**:`mvn package` **输出路径**:`target/[项目名]-[版本]-shaded.jar` 4. **spring-boot-maven-plugin** **用途**:专为Spring Boot项目生成可执行Fat JAR。 **配置示例**: ```xml <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>3.1.0</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> ``` **使用命令**:`mvn package` **输出路径**:`target/[项目名]-[版本].jar` --- #### 二、插件选择场景 | 插件 | 适用场景 | |-----------------------|--------------------------------------------------------------------------| | `maven-jar-plugin` | 仅需打包代码和资源,依赖通过`lib`目录管理[^1]。 | | `maven-assembly-plugin` | 需将依赖和代码打包成一个文件,或生成分发包(如ZIP)。 | | `maven-shade-plugin` | 需解决依赖冲突或构建独立可执行JAR。 | | `spring-boot-maven-plugin` | Spring Boot项目,生成包含内嵌容器的可执行JAR。 | --- #### 三、注意事项 1. **依赖路径问题**: - `maven-jar-plugin`生成的JAR不包含依赖,需手动将依赖复制到`lib`目录并配置ClassPath。 2. **主类配置**: - 必须通过`<mainClass>`指定入口类,否则无法直接运行JAR。 3. **版本兼容性**: - 建议使用最新稳定版插件(如`maven-jar-plugin 3.3.0`),避免兼容性问题。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值