• 使用maven生成可执行jar包(包含依赖)


    零零散散找了一些文章,有些感觉好乱,自己整理一下

    以下是pom.xml里的配置,本来有很多依赖包,为了不让配置看着很长,我删了一些dependencies中我自己项目中引入的jar包

     1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     3   <modelVersion>4.0.0</modelVersion>
     4  
     5   <groupId>com.test</groupId>
     6   <artifactId>spdbcraw</artifactId>
     7   <packaging>jar</packaging>
     8   <version>0.0.1-SNAPSHOT</version>
     9   <name>spdbcraw</name>
    10   
    11   <dependencies>
    12     <dependency>
    13         <groupId>log4j</groupId>
    14         <artifactId>log4j</artifactId>
    15         <version>1.2.13</version>
    16      </dependency>
    17      <dependency>
    18         <groupId>org.slf4j</groupId>
    19         <artifactId>slf4j-api</artifactId>
    20         <version>1.7.5</version>
    21      </dependency>
    22      <dependency>
    23         <groupId>org.slf4j</groupId>
    24         <artifactId>slf4j-log4j12</artifactId>
    25         <version>1.7.5</version>
    26      </dependency>
    27   </dependencies>
    28   
    29   <build>
    30     <plugins>
    31         <plugin>  
    32             <groupId>org.apache.maven.plugins</groupId>  
    33             <artifactId>maven-jar-plugin</artifactId>  
    34             <configuration>  
    35                 <archive>  
    36                     <manifest>  
    37                         <addClasspath>true</addClasspath>  
    38                         <classpathPrefix>lib/</classpathPrefix>  
    39                         <mainClass>com.test.xpathutil.Main</mainClass>  
    40                     </manifest>  
    41                     <manifestEntries>    
    42                        <Class-Path>.</Class-Path>    
    43                       </manifestEntries>    
    44                 </archive>  
    45             </configuration>  
    46         </plugin> 
    47         <plugin>  
    48             <groupId>org.apache.maven.plugins</groupId>  
    49             <artifactId>maven-dependency-plugin</artifactId>  
    50                 <executions>  
    51                     <execution>
    52                     <id>copy</id>  
    53                     <phase>install</phase>  
    54                     <goals>  
    55                         <goal>copy-dependencies</goal>  
    56                     </goals>  
    57                     <configuration>  
    58                         <outputDirectory>target/lib</outputDirectory>  
    59                     </configuration>  
    60                 </execution>  
    61             </executions>  
    62         </plugin>   
    63     </plugins>    
    64   </build>
    65   
    66 </project>
    View Code

    然后clean一下,在install进行打包操作,第一次打包可能会比较久,要下载一些东西

    在打包的中途,有可能会出现一些错导致打不上包,建议往jdk版本是否在项目中配置好,或者有其他父依赖的问题这方面思考一下

    最后,当打包成功之后,在target文件夹下面复制出jar文件和一个lib文件夹,在电脑上任意一个盘里面新建一个文件夹(名称随意),把lib文件夹和jar包放在新创建的文件夹里面,在windows下dos命令行输入:

    java -jar test.jar

    即可运行成功!

     -----补充-----------------------------------------------------------------------------

    另外可能很多人还有一个需求:

    maven默认情况下会把src/main/resources下的文件和class文件一起打到jar包内部,但是有很多场景下都需要把resources下的文件打包到jar包外面,这样修改resources目录下的文件就不需要重新打jar

    这里也给一个配制方法的地址:http://blog.csdn.net/su1322339466/article/details/52923806

  • 相关阅读:
    大学生程序猿IT情书“2014爱的告白挑战赛”获奖名单及优秀情书展示系列之
    HDU 4952 Poor Mitsui(贪心)
    linux-CentOS6.4安装Memcached+memcached扩展+安装memcache扩展+Memcache+mecached同步SESSION的几种方法
    POJ 1006 Biorhythms(中国剩余定理 )
    java多线程实验 滚动字
    学习鸟哥的Linux私房菜笔记(17)——Linux引导流程
    PCI的imagework已由freeview软件代替
    小强的HTML5移动开发之路(26)—— JavaScript回顾1
    小强的HTML5移动开发之路(25)—— AppCan开发环境
    小强的HTML5移动开发之路(24)—— PhoneGap Android开发环境搭建
  • 原文地址:https://www.cnblogs.com/cnsevennight/p/6580064.html
Copyright © 2020-2023  润新知