将Maven项目打包成可执行jar文件(引用第三方jar)
方法一. mvn assembly 或 mvn package (一个jar包)
<build>
      <plugins>
          <plugin>
              <artifactId>maven-assembly-plugin</artifactId>
              <configuration>
                  <archive>
                      <manifest>
                          <mainClass>com.tang.CSVUtils</mainClass>
                      </manifest>
                  </archive>
                  <descriptorRefs>
                      <descriptorRef>
                          jar-with-dependencies
                      </descriptorRef>
                  </descriptorRefs>
              </configuration>
              <!-- 加上下面这一段,使用 mvn package命令,不加则使用mvn assembly-->
              <!-- <executions>   
                  <execution>
                      <id>make-assemble</id>
                      <phase>package</phase>
                      <goals>
                          <goal>single</goal>
                      </goals>
                  </execution>
              </executions> -->
          </plugin>
      </plugins>
  </build>
Eclipse 中 Run As--- Maven clean ---Maven assembly:assembly(或 Maven package)
Target目录生成如下文件:
其中,
testLog4j-0.1.jar 是不可直接运行的,因为没有带第三方包。
testLog4j-0.1-jar-with-dependencies.jar 就是带有第三方包的可执行 jar 包,
在命令行执行 java -jar testLog4j-0.1-jar-with-dependencies.jar 即可运行
方法二:mvn package(一个jar包和一个lib文件夹)
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>com.tang.CSVUtils</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <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>
    </plugins>
</build>
执行maven package 进行打包进入target目录。
其中lib就是第三方jar包的目录,在其他项目引入testLog4j-0.1.jar会自动找到并引入lib里面的包.
只需要拷贝这两个(lib和testLog4j-0.1.jar)即可放到其他地方用了。
在命令行执行:java -jar testLog4j-0.1.jar
方法三:mvn package(推荐)(一个zip包,里面有一个jar包,一个lib文件夹,和一个conf文件夹)
<assembly> 
    <id>bin</id>  
    <!-- 最终打包成一个用于发布的zip文件 -->  
    <formats>  
        <format>zip</format>  
    </formats>
<!-- Adds dependencies to zip package under lib directory -->  
    <dependencySets>  
        <dependencySet>  
            <!-- 
               不使用项目的artifact,第三方jar不要解压,打包进zip文件的lib目录 
           -->  
            <useProjectArtifact>false</useProjectArtifact>  
            <outputDirectory>lib</outputDirectory>  
            <unpack>false</unpack>  
        </dependencySet>  
    </dependencySets>
<fileSets>  
        <!-- 把项目相关的说明文件,打包进zip文件的根目录 -->  
        <fileSet>  
            <directory>${project.basedir}</directory>  
            <outputDirectory>/</outputDirectory>  
            <includes>  
                <include>README*</include>  
                <include>LICENSE*</include>  
                <include>NOTICE*</include>  
            </includes>  
        </fileSet>
<!-- 把项目的配置文件,打包进zip文件的config目录 -->  
        <fileSet>  
            <directory>${project.basedir}\conf</directory>  
            <outputDirectory>conf</outputDirectory>  
            <includes>  
                <include>*.xml</include>  
                <include>*.properties</include>
                <include>*.key</include> 
            </includes>  
        </fileSet>
<!-- 把项目的脚本文件目录( src/main/scripts )中的启动脚本文件,打包进zip文件的跟目录 -->  
        <fileSet>  
            <directory>${project.build.scriptSourceDirectory}</directory>  
            <outputDirectory></outputDirectory>  
            <includes>  
                <include>startup.*</include>  
            </includes>  
        </fileSet>
<!-- 把项目自己编译出来的jar文件,打包进zip文件的根目录 -->  
        <fileSet>  
            <directory>${project.build.directory}</directory>  
            <outputDirectory></outputDirectory>  
            <includes>  
                <include>*.jar</include>  
            </includes>  
        </fileSet>  
    </fileSets>  
</assembly>
(2)pom.xml:
<build> 
      <plugins>
		<plugin>
		      <groupId>org.apache.maven.plugins</groupId>
		      <artifactId>maven-compiler-plugin</artifactId>
		      <version>3.1</version>
		      <configuration>
		          <compilerVersion>1.6</compilerVersion>
		          <source>1.6</source>
		          <target>1.6</target>
		      </configuration>
		 </plugin>  
          <!-- The configuration of maven-jar-plugin -->  
        <plugin>  
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-jar-plugin</artifactId>  
            <version>2.4</version>  
            <!-- The configuration of the plugin -->  
            <configuration>  
                <!-- Configuration of the archiver -->  
                <archive>
<!-- do not include pom.xml and pom.properties in the jar package -->  
                    <addMavenDescriptor>false</addMavenDescriptor>
<!-- Manifest specific configuration -->  
                    <manifest>
<!-- put third party jar package into the classpath of manifest -->  
                        <addClasspath>true</addClasspath>  
                        <!-- the prefix of the jar items in the classpath, it depends on the location(folder) of jar files -->  
                        <classpathPrefix>lib/</classpathPrefix>  
                        <!-- main class of the jar package-->  
                        <mainClass>com.tang.your-Main-class</mainClass>  
                    </manifest>  
                </archive>  
                <!-- excludes some files -->  
                <excludes>  
                    <exclude>${project.basedir}/xml/*</exclude>  
                </excludes>  
            </configuration>  
        </plugin>
<!-- The configuration of maven-assembly-plugin -->  
        <plugin>  
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-assembly-plugin</artifactId>  
            <version>2.4</version>  
            <!-- The configuration of the plugin -->  
            <configuration>  
                <!-- Specifies the configuration file of the assembly plugin -->  
                <descriptors>  
                    <descriptor>conf/package.xml</descriptor>  
                </descriptors>  
            </configuration>  
            <executions>  
                <execution>  
                    <id>make-assembly</id>  
                    <phase>package</phase>  
                    <goals>  
                        <goal>single</goal>  
                    </goals>  
                </execution>  
            </executions>  
        </plugin>   
      </plugins>  
  </build>
将Maven项目打包成可执行jar文件(引用第三方jar)的更多相关文章
- 如何将maven项目打包成可执行的jar
		
如何将maven项目打包成可执行的jar 分类: maven2010-12-17 10:18 10411人阅读 评论(2) 收藏 举报 jarmavenassemblyjava 方法一:将项目及所依赖 ...
 - Maven项目打包成可执行Jar文件
		
在使用Maven完成项目以后,如果需要打包成可执行的Jar文件,我们通过eclipse的导出很麻烦,还得指定入口文件的位置,还得说明依赖的jar包,既然都使用Maven了,很重要的一个目的就是让这些繁 ...
 - maven项目打包成可执行的jar
		
编写功能类: package com.hpay.FileToZkUtil; import java.io.File; import java.io.FileInputStream; import ja ...
 - 将Maven项目打包成可执行 jar文件(引用第三方jar)
		
使用maven assembly插件完成打包 修改pom: <build> <pluginManagement> <plugins> <!--设置jdk版本, ...
 - maven 把spring项目打包成可执行的文件
		
转载自http://www.mamicod.e.com/info-detail-635726.html 最近需要解决Maven项目导入可执行的jar包的问题,如果项目不包含Spring,那么使用mvn ...
 - 通过idea 打包 spring maven项目打包为可执行jar包
		
用assembly打包一直报错: shangyanshuodeMacBook-Pro:target shangyanshuo$ java -jar jobscrawler-1.0-SNAPSHOT-j ...
 - 怎么将maven项目打包成war包
		
问题:我在eclipse上能运行,然后我想将这个maven项目打包成war然后放到另外一台机子上(其实是手动放在tomcat的webapp目录中),提供外部访问.现在问题是,一直maven项目打包一直 ...
 - (3)Maven快速入门_3在Eclipse中创建Maven项目打包成jar
		
Eclipse中创建Maven项目 new ---> maven project ----> next 如下 普通java项目 选择 如下 quickstart 创建项目 : 输入 G ...
 - java普通项目打包成可执行jar文件时如何添加第三包
		
在java的web项目中,引用第三方包的时候非常简单.因为在web项目上中,默认有一个web-inf文件夹.web-inf文件夹下有一个lib文件夹,如果有用到第三方包,直接丢进去就行了.但是对于普通 ...
 
随机推荐
- Web前端性能优化常见面试题
			
一般说来,web前端指网站业务逻辑之前的部分,包括浏览器加载.网站视图模型.图片服务.CDN服务等,主要优化手段有浏览器访问.使用反向代理才.CDN等.1.减少http请求,合理浏览器缓存 2.启用压 ...
 - 最小生成树入门(克鲁斯卡尔+普利姆 hdu1233)
			
克鲁斯卡尔 #include <set> #include <map> #include <queue> #include <stack> #inclu ...
 - Spark的四种部署方式并对应四种提交方式
			
1 Local模式 本地模式 local模式 一台机器即可,开箱即用 不指定master,或者 --master local local[N] local[*] local模式下,使用 ...
 - 网络XSS攻击和CSRF攻击原理及防范
			
网络XSS攻击和CSRF攻击原理及防范 原文地址:http://www.freebuf.com/articles/web/39234.html 随着Web2.0.社交网络.微博等等一系列新型的互联网产 ...
 - Python常用模块之json模块
			
常用模块: 一个Python文件就是一个模块 import xxx 1. 标准模块,Python自带的,如time/random 2. 第三方模块,如连接mysql,需要安装 3. 自己写的Pytho ...
 - 配置JDK和Tomcat环境变量
			
配置JDK和Tomcat环境变量 一.安装JDK和Tomcat 安装JDK:直接运行jdk-7-windows-i586.exe可执行程序,默认安装即可. 备注:路径可以其他盘符,不建议路径包含中文名 ...
 - Linux 01 计算机系统硬件组成简介
			
PC服务器 1U = 4.445cm 企业1-2U比较多 互联网公司,品牌 DELL,HP, IBM. Dell品牌 2010年之前:1850,1950(1u),2850,2950(2u) 2010年 ...
 - Eclipse安装教程 ——史上最详细安装Java &Python教程说明
			
参考链接:https://blog.csdn.net/zichen_ziqi/article/details/73995755
 - 20165237 2017-2018-2 《Java程序设计》第9周学习总结
			
20165237 2017-2018-2 <Java程序设计>第9周学习总结 教材学习内容总结 1.URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符(Un ...
 - 求两个排序数组中位数 C++
			
题目描述: 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 . 请找出这两个有序数组的中位数.要求算法的时间复杂度为 O(log (m+n)) . 你可以假设 nums1 和 nu ...