怎么使用maven生成可以执行的jar

  介绍

这篇文章将为大家详细讲解有关怎么使用maven生成可以执行的jar,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

maven如何生成可以执行的罐子吗?

pom中不包含任何引用的情况下,只需要在pom中添加<代码> maven-jar-plugin>

<强>解决过程

新建项目,仅包含一个主要函数类:细细。java、输出<代码>细细说:你好

pom中配置为

& lt; groupId> com.paxi   ,& lt; artifactId> xixi   ,& lt; version> 1.0 -snapshot   ,& lt; packaging> jar      ,& lt; name> xixi   ,& lt; url> http://maven.apache.org</url>      ,& lt; properties>   & lt;才能project.build.sourceEncoding> UTF-8</project.build.sourceEncoding>   ,& lt;/properties>

执行<代码> mvn全新安装生成jar包<代码>细细- 1.0 -快照。jar 执行jar命令,执行反馈出错

,java 细细-jar  1.0 - snapshot.jar   细细- 1.0 -快照。jar中没有主清单属性

对jar进行解压缩jar xvf细细- 1.0 - snapshot.jar查看对应文件清单。MF

,cat  meta - inf/manifest . MF   Manifest-Version: 1.0   Archiver-Version: Plexus 文档   由:paxi   由:Apache  Maven  3.3.3   Build-Jdk: 1.8.0_121

在pom中添加插件<代码> maven-jar-plugin

& lt; build>   & lt;才能plugins>   ,,& lt; plugin>   ,,,& lt; groupId> org.apache.maven.plugins   ,,,& lt; artifactId> maven-jar-plugin   ,,,& lt; version> 3.1.0   ,,,& lt; configuration>   ,,,,& lt; archive>   ,,,,,& lt; manifest>   ,,,,,,& lt; mainClass> com.paxi.Xixi   ,,,,,& lt;/manifest>   ,,,,& lt;/archive>   ,,,& lt;/configuration>   ,,& lt;/plugin>   & lt;才能/plugins>   ,& lt;/build>

执行成功输出

, java jar细细- 1.0 -快照。jar
细细说:你好

再对解压缩后的清单。曼氏金融文件查看为

, cat  meta - inf/manifest . MF   Manifest-Version: 1.0   由:paxi   由:Apache  Maven  3.3.3   Build-Jdk: 1.8.0_121   主类:com.paxi.Xixi //新增

<强>在pom中添加依赖,maven如何生成可执行罐子吗?

需要使用插件maven-dependency-plugin和maven-jar-plugin。

<强>解决过程

在pom中仅仅增加一个apache commons包

& lt; groupId> com.paxi   ,& lt; artifactId> xixi   ,& lt; version> 1.0 -snapshot   ,& lt; packaging> jar      ,& lt; name> xixi   ,& lt; url> http://maven.apache.org</url>      ,& lt; properties>   & lt;才能project.build.sourceEncoding> UTF-8</project.build.sourceEncoding>   ,& lt;/properties>   ,& lt; dependencies>      ,,& lt; dependency>   ,,,& lt; groupId> org.apache.commons   ,,,& lt; artifactId> commons-lang3   ,,,& lt; version> 3.7 & lt;/version>   & lt;才能/dependency>      ,& lt;/dependencies>

在代码中运用常见的包中的一个类

, public  static  void  main (String [], args), {   ,,,String  words =,“Xixi 说:,hello";   ,,,if  (StringUtils.isNotBlank(单词)   ,,,{   ,,,,,System.out.println(单词);   ,,,}   以前,,}

打包后直接运行出错

, java jar细细- 1.0 -快照。jar
异常的线程“main". lang。NoClassDefFoundError: org/apache/commons/lang3/StringUtils
,,,在com.paxi.Xixi.main (Xixi.java: 11)
:引起. lang。ClassNotFoundException: org.apache.commons.lang3.StringUtils
,,,java.net.URLClassLoader.findClass (URLClassLoader.java: 381)
,,,java.lang.ClassLoader.loadClass (ClassLoader.java: 424)
,,,sun.misc.Launcher AppClassLoader.loadClass美元(Launcher.java: 331)
,,,java.lang.ClassLoader.loadClass (ClassLoader.java: 357)
,,,…1

在pom中增加插件

& lt; build>   & lt;才能plugins>   ,,& lt; plugin>   ,,,& lt; groupId> org.apache.maven.plugins   ,,,& lt; artifactId> maven-jar-plugin   ,,,& lt; version> 3.1.0   ,,,& lt; configuration>   ,,,,& lt; archive>   ,,,,,& lt; manifest>   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么使用maven生成可以执行的jar