Java 将Maven项目打成可执行jar包
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java 将Maven项目打成可执行jar包,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5473字,纯文字阅读大概需要8分钟。
内容图文
![Java 将Maven项目打成可执行jar包](/upload/InfoBanner/zyjiaocheng/739/5f06f14dc7d44ac2991e2903858ffd19.jpg)
一、用maven-shade-plugin打包
在pom.xml文件中加入如下信息,利用Maven的maven-shade-plugin插件进行打包。
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>1.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <!-- 程序主入口 --> <mainClass>net.test.HelloWorld</mainClass> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.handlers</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.schemas</resource> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build>
其中<mainClass>net.test.HelloWorld</mainClass>标签中配置的是项目程序的主入口,加入插件信息后的最终pom.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>testDemo</groupId> <artifactId>HelloWorld</artifactId> <version>1.0.0</version> <packaging>jar</packaging> <name>HelloWorld</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>1.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <!-- 程序主入口 --> <mainClass>net.test.HelloWorld</mainClass> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.handlers</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.schemas</resource> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>com.googlecode.log4jdbc</groupId> <artifactId>log4jdbc</artifactId> <version>1.2</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version>4.0</version> </dependency> <dependency> <groupId>oracle</groupId> <artifactId>ojdbc7</artifactId> <version>12.1.0.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.39</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.7</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.20.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.20.RELEASE</version> </dependency> <dependency> <groupId>javax.transaction</groupId> <artifactId>javax.transaction-api</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.0.1</version> </dependency> </dependencies> </project>
然后就可以执行以下Maven命令进行打包了:
mvn clean compile //清除之前target编译文件并重新编译 mvn clean package //对项目进行打包(因为配置过插件,所以jar包是可执行的) mvn clean install //安装项目,然后就可以使用了
也可以使用IDEA自带的maven管理工具代替执行上面的命令,如下图所示,依次点击蓝色的部分即可打包成功:
测试:
打好包后,找到jar包位置,在jar包所在文件夹空白处 Shift + 右击——在此处打开命令窗口,通过 java -jar 包名.jar 命令即可运行,如下图所示:
即将Maven项目打包为cmd可执行jar成功!
二、用maven-assembly-plugin打包
在pom.xml文件中加入如下信息,利用Maven的maven-assembly-plugin插件进行打包。
<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>net.test.HelloWorld</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin>
其中<mainClass>net.test.HelloWorld</mainClass>标签中配置的是项目程序的主入口,然后就可以执行以下Maven命令进行打包了:
mvn assembly:assembly
也可以使用IDEA自带的maven管理工具代替执行上面的命令:
测试如上!!!
注:成功后的jar包中META-INF 目录中的 MANIFEST.MF,内容如下(下列属性冒号后有一空格):
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: BigBoss
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_131
Main-Class: net.test.HelloWorld
内容总结
以上是互联网集市为您收集整理的Java 将Maven项目打成可执行jar包全部内容,希望文章能够帮你解决Java 将Maven项目打成可执行jar包所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。