您的位置:首页 > 其它

maven打包可执行jar的方法

2016-07-17 16:07 411 查看
在pom.xml中添加一下内容

<build>
<!--jar包名-版本号-->
<finalName>test-${project.version}</finalName>
<sourceDirectory>src/main/java</sourceDirectory>
<plugins>
<!-- 设置源文件编码方式 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<defaultLibBundleDir>lib</defaultLibBundleDir>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addCl
4000
asspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<!--包含main方法主类-->
<mainClass>com.test.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<!-- 拷贝依赖的jar包到lib目录 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- 解决资源文件的编码问题 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 打包source文件为jar文件(源码,可选) -->
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.1</version>
<configuration>
<attach>true</attach>
<encoding>UTF-8</encoding>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>


然后运行以下命令:

mvn assembly:assembly


注:在网上查找资料时,网上都会加入以下内容,将resources文件拷贝出来,但是我加入以下内容,会将resources内容放置于jar同一目录下,运行时会提示找不到resources资源文件。只要删掉以下内容,就可以正常运行,resources也会放在jar里面。

<resources>
<!-- 控制资源文件的拷贝 -->
<resource>
<directory>src/main/resources</directory>
<targetPath>${project.build.directory}</targetPath>
<!-- excludes和includes二选一使用即可 -->
<!-- 不包含的文件,支持通配符 -->
<excludes>
<exclude>*.txt</exclude>
</excludes>
<!-- 包含的文件,支持通配符 -->
<includes>
<include>*.properties</include>
</includes>
</resource>
</resources>


参考资料:http://my.oschina.net/simpleton/blog/607776
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: