maven 打jar包时将systemPath引入的包也打到jar中。

本文详细介绍如何使用Maven的assembly插件进行项目打包,包括配置插件版本、定义依赖集、设置输出目录等关键步骤,帮助读者掌握Maven打包技能。
<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.1.1</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>com.lwf.test.TestClass</mainClass>
                        </manifest>
                    </archive>
                    <descriptors>
                        <descriptor>src/main/assembly/assembly.xml</descriptor><!-- 指定assembly配置文件路径 -->
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

assembly.xml

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.1.1</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>com.lwf.test.TestClass</mainClass>
                        </manifest>
                    </archive>
                    <descriptors>
                        <descriptor>src/main/assembly/assembly.xml</descriptor><!-- 指定assembly配置文件路径 -->
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>


<assembly
		xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
	<id>jar-with-all-dependencies</id>
	<formats>
		<format>jar</format>
	</formats>
	<includeBaseDirectory>false</includeBaseDirectory>
	<dependencySets>
		<dependencySet>
			<outputDirectory>/</outputDirectory>
			<useProjectArtifact>true</useProjectArtifact>
			<unpack>true</unpack>
			<scope>runtime</scope>
		</dependencySet>
		<dependencySet>
			<outputDirectory>/</outputDirectory>
			<unpack>true</unpack>
			<scope>system</scope>
		</dependencySet>
	</dependencySets>

</assembly>
### 将本地 JAR 文件打包Maven 构建的项目中 为了将本地 JAR 文件含在 Maven 项目的最终构建中,可以采用几种方法来实现这一目标。 #### 方法一:安装本地依赖至本地仓库 一种常见的方式是先将本地 JAR 安装到本地 Maven 仓库。这可以通过 `mvn install:install-file` 命令完成: ```bash mvn install:install-file \ -Dfile=/path/to/your.jar \ -DgroupId=com.example \ -DartifactId=example-artifact \ -Dversion=1.0 \ -Dpackaging=jar ``` 之后,在项目的 `pom.xml` 中声明该依赖项即可[^1]。 #### 方法二:使用系统范围内的依赖定义 另一种方式是在 `pom.xml` 中通过 `<scope>system</scope>` 来指定本地路径下的 JAR 文件作为依赖。这种方式不需要事先安装 JAR 到本地仓库: ```xml <dependency> <groupId>com.example</groupId> <artifactId>example-artifact</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${project.basedir}/libs/your-local-jar.jar</systemPath> </dependency> ``` 需要注意的是,这种方法不推荐用于共享或发布用途,因为它假设所有开发者都具有相同的文件系统结构[^2]。 #### 方法三:创建自定义库模块并引入 对于更复杂的场景或者当希望保持良好的工程实践,建议创建一个新的 Maven 模块专门用来封装这个第三方 JAR,并将其设置为当前多模块项目的子模块之一。这样做的好处是可以更好地管理版本控制以及与其他团队成员协作开发。 以上三种方案可以根据具体需求选择最合适的解决方案。通常情况下,如果只是临测试或是个人项目,则可以直接使用第二种简单的方法;而对于正式产品级应用来说,应该优先考虑第一种或第三种更为严谨的做法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值