maven打包可执行jar的方法
2016-07-17 16:07
411 查看
在pom.xml中添加一下内容
然后运行以下命令:
注:在网上查找资料时,网上都会加入以下内容,将resources文件拷贝出来,但是我加入以下内容,会将resources内容放置于jar同一目录下,运行时会提示找不到resources资源文件。只要删掉以下内容,就可以正常运行,resources也会放在jar里面。
参考资料:http://my.oschina.net/simpleton/blog/607776
<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
相关文章推荐
- 【Java源码分析】HashMap源码分析
- poj-1006 中国剩余定理
- 【Thinking in Java真题精选】2. 存在继承关系时的类加载顺序
- 点击空白区域隐藏软键盘输入法
- 放电式消除BIOS密码(有图)
- Spark Checkpoint写操作代码分析
- ueditor富文本的使用以及“未找到上传文件”时的解决办法
- CodeForces 248E Piglet's Birthday (概率)
- 数字在排序数组中出现的次数 java
- Service简单学习
- Java基础学习第一天
- 正则表达式语法以及常用
- 正则表达式语法以及常用
- 正则表达式语法以及常用
- 正则表达式语法以及常用
- 正则表达式语法以及常用
- Codeforces Round #271 (Div. 2) F Ant colony
- codeForces 574b Bear and Three Musketeers
- 翻翻git之---低内存损耗,简单易用的汉字->拼音转换库 TinyPinyin
- Leetcode-sum-root-to-leaf-numbers