介绍
这篇文章将为大家详细讲解有关用Maven打成可执行jar,包含Maven依赖,本地依赖的方法是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
Maven项目中不可避免的需要用到依赖jar,实际使用中有的能从Maven仓库找到,有的找不到,所以存在使用本地jar的情况,下面将对使用Maven仓库中,以及使用本地jar不同情况下打包可运行jar进行介绍。
<强>情景一:强>使用Maven依赖,所有的依赖都从Maven仓库查找下载,最终打包成可执行jar,需要修改pom文件如下。
& lt; !——使用maven依赖查找json-lib——比; & lt; dependency> & lt; groupId> net.sf.json-lib & lt; artifactId> json-lib & lt; version> 2.4 & lt;/version> & lt; classifier> jdk15 & lt;/dependency>
对应修改pom文件,需指定程序入口,不然会报错xxxx - 1.0 -快照。jar中没有主清单属性
& lt; !——情景一,制定程序入口即可。——比; & lt; plugin> & lt; groupId> org.apache.maven.plugins & lt; artifactId> maven-shade-plugin & lt; version> 1.2.1 & lt; executions> & lt; execution> & lt; phase> package & lt; goals> & lt; goal> shade & lt;/goals> & lt; configuration> & lt; transformers> & lt;变压器 ,实现=皁rg.apache.maven.plugins.shade.resource.ManifestResourceTransformer"的在 & lt; mainClass> com.study.App & lt;/transformer> & lt;/transformers> & lt;/configuration> & lt;/execution> & lt;/executions> & lt;/plugin>
打包之后,即可通过java jar xxx。罐子运行,
包com.study; 进口net.sf.json.JSONObject;/* * *你好世界! * */公共类应用 { 公共静态void main (String [] args) { system . out。println (“Hello World !”); JSONObject json=new JSONObject (); json.put (“name",“子落“); System.out.println (json.toString ()); } }
运行效果如下,
通过jar可以看的出,是将引用的罐子中对应的文件解压编译到打包的jar中
最终pom文件如下,
& lt;及# 63;xml version=?.0”;编码=癠TF-8", # 63;比; http://maven.apache.org/POM/4.0.0" & lt;项目xmlns=?xmlns: xsi=癶ttp://www.w3.org/2001/XMLSchema-instance" ,xsi: schemaLocation=癶ttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"的在; & lt; modelVersion> 4.0.0 & lt; groupId> com.study & lt; artifactId> mvnstudy & lt; version> 1.0 -snapshot & lt; packaging> jar & lt; name> mvnstudy & lt; url> http://www.example.com</url> & lt; properties> & lt; project.build.sourceEncoding> UTF-8 & lt; maven.compiler.source> 1.7 & lt;/maven.compiler.source> & lt; maven.compiler.target> 1.7 & lt;/maven.compiler.target> & lt;/properties> & lt; dependencies> & lt; dependency> & lt; groupId> junit & lt; artifactId> junit & lt; version> 4.11 & lt;/version> & lt; scope> test & lt;/dependency> & lt; !——使用maven依赖查找json-lib——比; & lt; dependency> & lt; groupId> net.sf.json-lib & lt; artifactId> json-lib & lt; version> 2.4 & lt;/version> & lt; classifier> jdk15 & lt;/dependency> & lt;/dependencies> & lt; build> & lt; plugins> & lt; !——情景一,制定程序入口即可。——比; & lt; plugin> & lt; groupId> org.apache.maven.plugins & lt; artifactId> maven-shade-plugin & lt; version> 1.2.1 & lt; executions> & lt; execution> & lt; phase> package & lt; goals> & lt; goal> shade & lt;/goals> & lt; configuration> & lt; transformers> & lt;变压器 ,实现=皁rg.apache.maven.plugins.shade.resource.ManifestResourceTransformer"的在 & lt; mainClass> com.study.App用Maven打成可执行jar,包含Maven依赖,本地依赖的方法是什么