博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IntelliJ IDEA自身以及maven项目打包方式
阅读量:4093 次
发布时间:2019-05-25

本文共 12214 字,大约阅读时间需要 40 分钟。

1. Idea自身打包方式

1.1 创建Artifacts

  快捷键(Ctrl+Alt+Shift+S)打开项目的Project Structure。在Artifacts创建

  

   接着,指定main class,如下:

  

   最后,得到创建得到的artifacts

   

1.2 打包Artifacts

  在菜单栏目选Build,最后一栏Build Artifacts

  

  最后,在出现的窗口创建

  

   得到打包结果:

  

2. maven打包方式

  maven打包的步骤:

  • 先mvn clean,再 package即可
  • 如需把项目编译成jar包,打进maven仓库里面,可以运行install命令

  

2.1 maven-jar-plugins 无依赖第三方jar的打包

   pom.xml配置如下:

${project.build.directory}/classes
src/main/resources
true
**/*.xml
**/*.conf
net.alchim31.maven
scala-maven-plugin
3.2.1
scala-compile-first
process-resources
add-source
compile
org.apache.maven.plugins
maven-compiler-plugin
3.1
1.8
1.8
UTF-8
compile
compile
org.apache.maven.plugins
maven-jar-plugin
2.4
true
lib/
com.swordfall.restserver.base.WebServer

  运行:在target中找到打包出来的xxx.jar包,运行java -jar xxx.jar即可,但是如果程序有依赖其他包,比如程序依赖jdbc去查询db,这时候再执行就会出现找不到jdbc依赖,因为我们并没有将依赖包打进去。

2.2 maven-assembly-plugins 解决依赖第三方jar包,并可执行jar的打包

  以下方式用的比较少,因为我们依赖的jar,也会打进到我们最终生成的jar中,会导致一个jar文件过大,而且如果要给第三方使用,最好给一个纯净的。

  pom.xml配置如下:

${project.build.directory}/classes
src/main/resources
true
**/*.xml
**/*.conf
net.alchim31.maven
scala-maven-plugin
3.2.1
scala-compile-first
process-resources
add-source
compile
org.apache.maven.plugins
maven-compiler-plugin
3.1
1.8
1.8
UTF-8
compile
compile
org.apache.maven.plugins
maven-assembly-plugin
2.3
false
jar-with-dependencies
com.swordfall.restserver.base.WebServer
make-assembly
package
assembly
  

2.3 maven-assembly-plugins zip打包

  在2.2基础上,我们还可以利用assembly,将我们依赖的jar归类,打包成一个zip。发布项目的时候,将zip包copy到服务器上,直接unzip xxx.zip,里面包含要运行的jar以及依赖的lib,还有配置的config文件,还可以包括执行脚本,可以直接启动服务。

src/main/resources
**/*.properties
**/*.xml
net.alchim31.maven
scala-maven-plugin
3.2.1
scala-compile-first
process-resources
add-source
compile
org.apache.maven.plugins
maven-compiler-plugin
3.1
1.8
1.8
UTF-8
compile
compile
org.apache.maven.plugins
maven-jar-plugin
2.4
*.properties
*.xml
*.txt
false
true
lib/
com.swordfall.restserver.base.WebServer
conf/
org.apache.maven.plugins
maven-assembly-plugin
2.4
src/main/assembly/assembly.xml
make-assembly
package
single
  maven-assembly-plugin还需要配置一个assembly.xml文件,用于过滤不必要的第三方jar包文件,或者确定自己编译的项目文件路径、项目的启动脚本文件目录,打包的类型格式zip或者tar.gz等。   assembly.xml文件内容为:
bin
false
zip
false
lib
false
${project.build.directory}
*.jar
${project.basedir}/src/main/scripts
bin
startup.*

  打包结果为:

  

2.4 maven-shade-plugin 打包

  使用这种方式打出来的是揉合在一起,成为一个jar文件。这种打包方式的优点是可以利用transformer把第三方jar相同的配置文件组合成一个文件,如reference.conf文件等等。

  pom.xml配置如下:

${project.build.directory}/classes
src/main/resources
true
**/*.xml
**/*.conf
net.alchim31.maven
scala-maven-plugin
3.2.1
scala-compile-first
process-resources
add-source
compile
org.apache.maven.plugins
maven-compiler-plugin
3.1
1.8
1.8
UTF-8
compile
compile
org.apache.maven.plugins
maven-shade-plugin
2.4.3
package
shade
com.hongshan.bdp.restserver.base.WebServer
reference.conf
version.conf
akka-http-version.conf
true
jar-with-dependencies
io.spray:spray-json_2.11:jar:
org.slf4j:slf4j-api:jar:
org.slf4j:slf4j-log4j12:jar:
log4j:log4j:jar:
commons-logging:commons-logging:jar:
commons-lang:commons-lang:jar:
true

  打包结果:

  

总结

【github地址】

https://github.com/SwordfallYeung/MavenPackage

【参考资料】

 scala打包插件配置①

 scala打包插件配置②

 spring-boot配置读取外部配置文件

 普通jar包如何读取外部的配置文件

 linux shell脚本启动或停止jar

 IDEA如何打包可运行jar,外部引用jar包版

 IDEA自身打包方式

 shade 过滤包名

转载地址:http://rzcii.baihongyu.com/

你可能感兴趣的文章
Python运维开发之路《函数》
查看>>
poj1002 大数的 n的m次
查看>>
你必须知道的.net导航
查看>>
R语言升级
查看>>
基于百度AI的自然语言处理文字分类
查看>>
VTK初学一,比较常见的错误1
查看>>
【动态规划】[POJ 1050]To the Max
查看>>
HDU5375 GRAY CODE
查看>>
如何优化Web前端技术开发生态体系
查看>>
已解决:E: Couldn't find package proftpd
查看>>
iOS及Mac开源项目和学习资料【超级全面】
查看>>
androi 多线程
查看>>
能帮我们学习吉他的音乐软件——Guitar Pro
查看>>
洛谷P1083 借教室
查看>>
d3.js做的柱状图
查看>>
自定义异常
查看>>
Redis概述
查看>>
嵌入式成长轨迹18 【Linux应用编程强化】【Linux下的C编程 下】【标准输入输出】...
查看>>
((完美有效))安卓神器XPOSED框架不用root安装指南
查看>>
全局对象
查看>>