Maven JAR Plugin 插件使用小结
1 Maven JAR Plugin 插件地址
https://maven.apache.org/plugins/maven-jar-plugin/index.html
2 Maven JAR Plugin 特点
maven-assembly-plugin: maven 生命周期 package 阶段的默认打包插件,用于将 Maven 项目打包成jar(注意该插件不会将项目中引入的依赖打进最终的 Jar 文件)
3 maven-jar-plugin 的用法
3.1 无依赖项 maven-jar-plugin 配置
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.2</version>
<configuration>
<archive>
<manifest>
<!--主类入口-->
<mainClass>com.yq.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>以上配置是打包成可执行jar包,
如果打包成不可执行的jar包,只需不配置 mainClass 即可,如果打包成不可执行jar包,都可以不配置maven-jar-plugin插件,maven-jar-plugin 是maven 生命周期 package 阶段的默认打包插件。
3.2 有依赖项 maven-jar-plugin 配置
文章最开始已经说过,通过 maven-jar-plugin 生成 Jar 文件时,不会将依赖包函进去;因此需要配置依赖项所在位置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.2</version>
<configuration>
<archive>
<manifest>
<!--主类入口-->
<mainClass>com.yq.Main</mainClass>
<!--将项目的依赖位置添加到 MANIFEST.MF 中的Class-Path-->
<addClasspath>true</addClasspath>
<!--依赖的存放位置 和生成的jar放在同一级目录下-->
<classpathPrefix>lib/</classpathPrefix>
<!--是否使用-SNAPSHOT 命名版本。默认值为true-->
<useUniqueVersions>false</useUniqueVersions>
</manifest>
</archive>
</configuration>
</plugin>上述配置生成的 MANIFEST.MF 中多了依赖的信息:
Manifest-Version: 1.0 Created-By: Maven JAR Plugin 3.4.2 Build-Jdk-Spec: 17 Class-Path: lib/hutool-all-5.8.39.jar Main-Class: com.yq.Main
实际并没有下载依赖到lib 目录,需要借助maven-dependency-plugin插件下载依赖到lib目录
3.3 配合maven-dependency-plugin 将依赖复制到指定位置
它可以从本地或远程存储库复制或解压构件到指定位置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.8.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<!-- 间接依赖也拷贝 -->
<excludeTransitive>false</excludeTransitive>
<!-- 依赖带上版本号 -->
<stripVersion>false</stripVersion>
<!--覆盖发布工件-->
<overWriteReleases>false</overWriteReleases>
<!--覆盖快照项目-->
<overWriteSnapshots>false</overWriteSnapshots>
<!--覆盖不存在或比源文件更旧的构建产物-->
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>到此这篇关于Maven JAR Plugin 插件使用小结的文章就介绍到这了,更多相关Maven JAR Plugin 插件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
- Maven配置中repositories、distributionManagement、pluginRepositories用法及将已有jar包部署到私服
- maven插件maven-jar-plugin构建jar文件的详细使用
- maven打包插件的使用(maven-compiler-plugin、maven-dependency-plugin、maven-jar-plugin、maven-resources-plugin)
- 使用maven-assembly-plugin如何将system 依赖范围的jar以class 方式打包进 jar包中
- docker-maven-plugin 插件无法拉取对应jar包问题
相关文章
如何自定义springboot-starter日志组件供各个服务使用(系统日志优化)
文章介绍了如何将各个微服务的接口调用日志逻辑优化为一个可共享的Spring Boot Starter,通过自定义注解和自动装配机制实现,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧2025-01-01


最新评论