Maven將依賴包、jar/war包及配置文件輸出到指定目錄

使用Maven插件將依賴包 jar包 war包及配置文件輸出到指定目錄html

寫在前面

​ 最近遇到一個朋友遇到一個項目須要將 maven 的依賴包和配置文件分開打包而後用腳本執行程序。這樣的好處在於能夠隨時修改配置文件內容及查看 jar 包。若是將全部打成一個 jar 包就會有個問題(例如:修改數據庫鏈接位置須要從新打包這樣就失去了使用配置文件的有優勢)。web

本文利用Maven插件將依賴包、jar/war包及配置文件輸出到指定目錄數據庫

1. 使用 maven-dependency-plugin 插件將依賴包導出到指定文件夾

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <!--${project.build.directory} class的輸出目錄不作設置的話默認表明項目根目錄的target目錄;
                            也能夠使用「自定義文件夾/自定義文件夾 例如:a/b」,也能夠使用絕對路徑如:「D:\test」 -->
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        <excludeTransitive>false</excludeTransitive>
                        <stripVersion>false</stripVersion>
                        <includeScope>runtime</includeScope>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

如下步驟將會省略掉build plugins節點apache

2. 使用 maven-war-plugin 插件將war打包到指定路徑

打Jar包時,與此相似app

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-war-plugin</artifactId>
	<configuration>
		<outputDirectory>d:\test</outputDirectory>
		<!--表示將全部的webapps項目下的文件拷貝到相應路徑-->
		<webappDirectory>d:\test</webappDirectory>
	</configuration>
</plugin>

3. 使用 maven-jar-plugin 插件移除配置文件將其不打包進 jar 包中,並能夠將打包後的 jar 包輸出到指定路徑

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
      <!-- 指定打包的jar包輸出路徑-->
        <outputDirectory>
            ${project.build.directory}/lib
        </outputDirectory>   
        <!--不打入jar包的文件類型或者路徑-->
        <excludes>
            <exclude>**/*.properties</exclude>
            <exclude>**/*.xml</exclude>
            <exclude>**/*.yml</exclude>
            <exclude>static/**</exclude>
            <exclude>templates/**</exclude>
        </excludes>
    </configuration>
</plugin>

4. 使用 maven-resources-plugin 插件將須要複製的文件複製到指定路徑(例:將配置文件提取到指定路徑)

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <executions>
        <execution>
            <id>copy-resources</id>
            <phase>package</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <encoding>UTF-8</encoding>
                <!--打成jar包後複製到的路徑-->
                <outputDirectory>
                    ${project.build.directory}/conf
                </outputDirectory>  
                <resources>
                    <resource>
                        <!--項目中的路徑-->
                        <directory>src/main/resources/</directory>
                    </resource>
                </resources>
            </configuration>
        </execution>
        <!--可配置多個提取複製路徑只須要 「<id>」名字不同便可-->
        <execution>
            <id>copy-bulid</id>
            <phase>package</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <encoding>UTF-8</encoding>
                <outputDirectory>
                    ${project.build.directory}/bin
                </outputDirectory>   
                <resources>
                    <resource>
                        <directory>build/</directory>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

使用 maven 命令執行打包命令

mvn clean package

轉自:https://www.cnblogs.com/willvi624/p/9456239.htmlwebapp

相關文章
相關標籤/搜索