利用MAVEN打包可运行jar包,包括依赖的第三方包
转载自:http://bglmmz.iteye.com/blog/2058914
背景:
另一篇文章说了如何利用IDEA来打包,现在来说说如何利用MAVEN打包
目标:应用本身打成一个jar包,依赖的第三方包放到lib目录下
开发环境
OS:Windows 8.1
JDK:1.7.0
开发工具:IntelliJ IDEA 13.1.1
步骤:
1. 首先看下maven项目的标准目录结构:
2. 看下项目pom.xml的配置,首先要配置maven-jar-plugin,把自己的代码编译打包成jar文件,然后配置maven-assembly-plugin,把整个项目打包成一个发布包。
Xml代码
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-jar-pluginartifactId>
<version>2.4version>
<configuration>
<archive>
<addMavenDescriptor>falseaddMavenDescriptor>
<manifest>
<addClasspath>trueaddClasspath>
<classpathPrefix>lib/classpathPrefix>
<mainClass>dbRobot.BeanRobotmainClass>
manifest>
archive>
<excludes>
<exclude>${project.basedir}/xml/*exclude>
excludes>
configuration>
plugin>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-assembly-pluginartifactId>
<version>2.4version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/package.xmldescriptor>
descriptors>
configuration>
<executions>
<execution>
<id>make-assemblyid>
<phase>packagephase>
<goals>
<goal>singlegoal>
goals>
execution>
executions>
plugin>
plugins>
build>
3. 再来看package.xml的配置
Xml代码
<assembly>
<id>binid>
<formats>
<format>zipformat>
formats>
<dependencySets>
<dependencySet>
<useProjectArtifact>falseuseProjectArtifact>
<outputDirectory>liboutputDirectory>
<unpack>falseunpack>
dependencySet>
dependencySets>
<fileSets>
<fileSet>
<directory>${project.basedir}directory>
<outputDirectory>/outputDirectory>
<includes>
<include>README*include>
<include>LICENSE*include>
<include>NOTICE*include>
includes>
fileSet>
<fileSet>
<directory>${project.basedir}\src\main\configdirectory>
<outputDirectory>configoutputDirectory>
<includes>
<include>*.xmlinclude>
<include>*.propertiesinclude>
includes>
fileSet>
<fileSet>
<directory>${project.build.scriptSourceDirectory}directory>
<outputDirectory>outputDirectory>
<includes>
<include>startup.*include>
includes>
fileSet>
<fileSet>
<directory>${project.build.scriptSourceDirectory}directory>
<outputDirectory>outputDirectory>
<includes>
<exclude>startup.*exclude>
includes>
fileSet>
<fileSet>
<directory>${project.build.directory}directory>
<outputDirectory>outputDirectory>
<includes>
<include>*.jarinclude>
includes>
fileSet>
fileSets>
assembly>
4. 经过jar和assembly,最终得到一个可发布的zip文件,内容结构如下: