利用Maven外掛保證jar包啟動時自動關聯依賴jar包
阿新 • • 發佈:2019-01-29
當我使用maven管理工程結構時,我們的專案如果不是web專案,最終會生成一個jar檔案,當我們使用java命令執行該jar檔案時,不僅需要指定jar包中MainClass路徑,而且還要通過指令碼命令把依賴的jar包配置進去,這樣非常麻煩而且使用不方便。
第一個外掛是maven依賴外掛配置如下:
<plugin> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <type>jar</type> <includeTypes>jar</includeTypes> <outputDirectory> ${project.build.directory}/lib </outputDirectory> </configuration> </execution> </executions> </plugin>
通過這個外掛,我們在打包構建工程師,會在target目錄下生成一個lib檔案加,裡面是該工程依賴的所有jar包。
第二個外掛是maven生成jar檔案外掛配置如下:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <classesDirectory>target/classes/</classesDirectory> <archive> <manifest> <mainClass>com.my.test.Main</mainClass> <!-- 打包時 MANIFEST.MF檔案不記錄的時間戳版本 --> <useUniqueVersions>false</useUniqueVersions> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> </manifest> <manifestEntries> <Class-Path>.</Class-Path> </manifestEntries> </archive> </configuration> </plugin>
通過該配置,我們打包出來的jar包,會自動關聯第三方jar包和啟動類。
我們在執行時只要執行
java -jar **.jar
就可以快速執行。
我們在遷移的時候,只需要保證jar檔案和lib目錄在一個目錄下即可。