2020-03-30 05:27:46 登录注册 RSS

当前位置: 公理网 >> 正义之家 >> 利用MAVEN打包可运行jar包,包括依赖的第三方包

利用MAVEN打包可运行jar包,包括依赖的第三方包
发布时间:02-17| 来源:公理网 | 点击发表评论

背景:

另一篇文章说了如何利用IDEA来打包,现在来说说如何利用MAVEN打包

?

目标:应用本身打成一个jar包,依赖的第三方包放到lib目录下

?

开发环境

OS:?Windows8.1

JDK:1.7.0

开发工具:IntelliJIDEA13.1.1

?

步骤:

1.首先看下maven项目的标准目录结构:

513775e35d59.jpg"alt=""/>
?

2.看下项目pom.xml的配置,首先要配置maven-jar-plugin,把自己的代码编译打包成jar文件,然后配置maven-assembly-plugin,把整个项目打包成一个发布包。



buildplugins!--Theconfigurationofmaven-jar-plugin--plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-jar-plugin/artifactIdversion2.4/version!--Theconfigurationoftheplugin--configuration!--Configurationofthearchiver--archive!--生成的jar中,不要包含pom.xml和pom.properties这两个文件--addMavenDescriptorfalse/addMavenDescriptor!--Manifestspecificconfiguration--manifest!--是否要把第三方jar放到manifest的classpath中--addClasspathtrue/addClasspath!--生成的manifest中classpath的前缀,因为要把第三方jar放到lib目录下,所以classpath的前缀是lib/--classpathPrefixlib//classpathPrefix!--应用的mainclass--mainClassdbRobot.BeanRobot/mainClass/manifest/archive!--过滤掉不希望包含在jar中的文件--excludesexclude${project.basedir}/xml/*/exclude/excludes/configuration/plugin!--Theconfigurationofmaven-assembly-plugin--plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-assembly-plugin/artifactIdversion2.4/version!--Theconfigurationoftheplugin--configuration!--Specifiestheconfigurationfileoftheassemblyplugin--descriptorsdescriptorsrc/main/assembly/package.xml/descriptor/descriptors/configurationexecutionsexecutionidmake-assembly/idphasepackage/phasegoalsgoalsingle/goal/goals/execution/executions/plugin/plugins/build
?

?3.再来看package.xml的配置



assemblyidbin/id!--最终打包成一个用于发布的zip文件--formatsformatzip/format/formats!--Addsdependenciestozippackageunderlibdirectory--dependencySetsdependencySet!--不使用项目的artifact,第三方jar不要解压,打包进zip文件的lib目录--useProjectArtifactfalse/useProjectArtifactoutputDirectorylib/outputDirectoryunpackfalse/unpack/dependencySet/dependencySetsfileSets!--把项目相关的说明文件,打包进zip文件的根目录--fileSetdirectory${project.basedir}/directoryoutputDirectory//outputDirectoryincludesincludeREADME*/includeincludeLICENSE*/includeincludeNOTICE*/include/includes/fileSet!--把项目的配置文件,打包进zip文件的config目录--fileSetdirectory${project.basedir}\src\main\config/directoryoutputDirectoryconfig/outputDirectoryincludesinclude*.xml/includeinclude*.properties/include/includes/fileSet!--把项目的脚本文件目录(src/main/scripts)中的启动脚本文件,打包进zip文件的跟目录--fileSetdirectory${project.build.scriptSourceDirectory}/directoryoutputDirectory/outputDirectoryincludesincludestartup.*/include/includes/fileSet!--把项目的脚本文件(除了启动脚本文件),打包进zip文件的script目录--fileSetdirectory${project.build.scriptSourceDirectory}/directoryoutputDirectory/outputDirectoryincludesexcludestartup.*/exclude/includes/fileSet!--把项目自己编译出来的jar文件,打包进zip文件的根目录--fileSetdirectory${project.build.directory}/directoryoutputDirectory/outputDirectoryincludesinclude*.jar/include/includes/fileSet/fileSets/assembly
?

4.经过jar和assembly,最终得到一个可发布的zip文件,内容结构如下:



?
点赞
收藏
分享

最新新闻

手机浏览

公理网 版权所有

公理网 Total 0.061942(s) query 6, 报料QQ:点击这里

给我发消息