將Maven專案打包成可執行jar檔案和外種配置方式(引用第三方jar)
阿新 • • 發佈:2019-01-04
http://blog.csdn.net/zhangdaiscott/article/details/6911640
方法一. mvn assembly 或 mvn package (一個jar包)
把依賴包和自己專案的檔案打包如同一個jar包(這種方式對spring的專案不支援)- <build>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
-
<
- <archive>
- <manifest>
- <mainClass>com.tang.CSVUtils</mainClass>
- </manifest>
- </archive>
- <descriptorRefs>
-
<
- 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>
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)即可放到其他地方用