<强>目标:强>
将依赖的第三方jar包打进去
<强>方法:强>
maven-assembly-plugin
<强>环境:强>
2016.3的想法 JDK 1.8
<强>遇到的问题:强>
此处耗时2天时间,遇到过的坑:
1。修改完pom.xml后,不生效。
——改pom。xml后,代码不生效,是因为对想法工具不熟,在修改完xml后,需要点工具右下角的进口变化或者直接点auto-import就可以一劳永逸了。
2。生成jar后,想法可以执行,但是java jar无法执行,报错异常的线程“主要”java.lang.NoClassDefFoundError
如果修改砰的一声。xml中的mainClass生效了,说不定是mainClass传入的不对,使用mvn exec: java -Dexec.mainClass=癱om.delon.main.Test”可以尝试主方法是否正确。
如果想用编译测试。java文件,可以使用mvn清洁编译执行:java -Dexec.mainClass=癱om.delon.main.Test”
3。生成jar后,想法可以执行,java jar也可以执行,但是缺少相关依赖,报错异常的线程“主要”. lang。NoClassDefFoundError: okhttp3/RequestBody
参考如下解决方式即可。
<强> maven构建jar包的步骤:强>
1。执行可执行的类,代码内需要有入口主要方法
2。通过mvn包来构建jar包
3。使用java jar test.jar来执行jar包
<强>一,包含依赖jar包强>
maven的pom.xml配置文件
& lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比; & lt;项目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”比; & lt; modelVersion> 4.0.0 & lt; groupId> com.xxx.delon & lt; artifactId> bugly & lt; version> 1.0 -snapshot & lt; dependencies> & lt; !——工程所需的jar包引用开始——比; & lt; !——单元测试——比; & lt; dependency> & lt; groupId> junit & lt; artifactId> junit & lt; version> 4.7 & lt;/version> & lt; scope> test & lt;/dependency> & lt; !——代码所需依赖——比; & lt; dependency> & lt; groupId> com.squareup.okhttp3 & lt; artifactId> okhttp & lt; version> 3.3.0 & lt;/dependency> & lt; !——代码所需依赖——比; & lt; dependency> & lt; groupId> com.fasterxml.jackson.core & lt; artifactId> jackson-databind & lt; version> 2.2.2 & lt;/dependency> & lt; !——工程所需的jar包引用开始——比; & lt;/dependencies> & lt; build> & lt; plugins> & lt; plugin> & lt; artifactId> maven-assembly-plugin & lt; configuration> & lt; appendAssemblyId> false & lt; descriptorRefs> & lt; descriptorRef> jar-with-dependencies & lt;/descriptorRefs> & lt; archive> & lt; manifest> & lt; !——此处指定主方法入口的类——比; & lt; mainClass> com.xxx.uploadFile & lt;/manifest> & lt;/archive> 助教& lt;/configuration> & lt; executions> & lt; execution> & lt; id> make-assembly & lt; phase> package & lt; goals> & lt; goal> assembly & lt;/goals> & lt;/execution> & lt;/executions> & lt;/plugin> & lt;/plugins> & lt;/build> & lt;/project>
生成jar包,会生成在目标目录下
mvn包
解压缩缺陷- 1.0 - snapshot.jar→meta - inf→manifest . mf
Manifest-Version: 1.0 Archiver-Version:丛文档 由:Apache Maven 由:·德龙 Build-Jdk: 1.8.0_112 主类:com.xxx.uploadFile
执行:
#运行jar java jar test.jar
也可以通过如下命令
mvn组装:大会
#跳过测试 mvn -Dmaven.test。跳过=true组装:大会
注意:在执行这个命令之前,必须先配置Maven的环境变量、检查是否配置可通过命令:mvn - version