【Maven】使用插件拷貝jar包到指定目錄


 
背景
  java項目模塊的jar包默認會生成到target目錄,如果希望將所有模塊的jar包統一復制到指定目錄,本文給出了解決方法
 
解決
  使用maven-antrun-plugin插件,使用如下:

<plugins>

    <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
            <execution>
                <id>copy</id>
                <phase>package</phase>
                <configuration>
                    <tasks>

                          <copy todir="指定目錄完整路徑">
                            <!-- project.build.directory表示各個模塊的target目錄 -->
                            <fileset dir="${project.build.directory}">
                                <!-- 需要復制的jar包文件名稱 -->
                                <include name="${project.artifactId}-${project.version}.jar"/>
                            </fileset>
                        </copy>

                    </tasks>
                </configuration>
                <goals>
                    <goal>run</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

</plugins>
  上面的方法有個問題,有些復制到指定目錄的jar包不包含依賴的第三方jar文件,有些又包含。原因不明
  如果指定需要復制的每個模塊名稱、路徑就可以解決此問題(tasks部分)
<tasks>

    <copy todir="指定目錄完整路徑" overwrite="true">
        <fileset dir="模塊A target 目錄完整路徑">
        <!-- 模塊jar文件名稱  -->
            <include name="A.jar"/>
        </fileset>
    </copy>

    <copy todir="指定目錄完整路徑" overwrite="true">
        <fileset dir="模塊B target 目錄完整路徑">
            <include name="B.jar"/>
        </fileset>
    </copy>
 
</tasks>
 
其它
  關於【有些生成的jar不會包含依賴包】的可能原因:復制的是target目錄下jar.original文件,該文件是不包含依賴包的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM