1. 程式人生 > >利用Maven外掛保證jar包啟動時自動關聯依賴jar包

利用Maven外掛保證jar包啟動時自動關聯依賴jar包

    當我使用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目錄在一個目錄下即可。