使用maven生成可執行jar包(包含依賴)

零零散散找了一些文章,有些感受好亂,本身整理一下java

如下是pom.xml裏的配置,原本有不少依賴包,爲了避免讓配置看着很長,我刪了一些dependencies中我本身項目中引入的jar包apache

 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進行打包操做,第一次打包可能會比較久,要下載一些東西windows

在打包的中途,有可能會出現一些錯致使打不上包,建議往jdk版本是否在項目中配置好,或者有其餘父依賴的問題這方面思考一下api

最後,當打包成功以後,在target文件夾下面複製出jar文件和一個lib文件夾,在電腦上任意一個盤裏面新建一個文件夾(名稱隨意),把lib文件夾和jar包放在新建立的文件夾裏面,在windows下dos命令行輸入:maven

java -jar test.jar

便可運行成功!ide

 -----補充-----------------------------------------------------------------------------ui

另外可能不少人還有一個需求:spa

maven默認狀況下會把src/main/resources下的文件和class文件一塊兒打到jar包內部,可是有不少場景下都須要把resources下的文件打包到jar包外面,這樣修改resources目錄下的文件就不須要從新打jar.net

這裏也給一個配製方法的地址:http://blog.csdn.net/su1322339466/article/details/52923806命令行

相關文章
相關標籤/搜索