使用Maven插件將依賴包 jar包 war包及配置文件輸出到指定目錄web
最近遇到一個朋友遇到一個項目須要將 maven 的依賴包和配置文件分開打包而後用腳本執行程序。這樣的好處在於能夠隨時修改配置文件內容及查看 jar 包。若是將全部打成一個 jar 包就會有個問題(例如:修改數據庫鏈接位置須要從新打包這樣就失去了使用配置文件的有優勢)。數據庫
本文利用Maven插件將依賴包、jar/war包及配置文件輸出到指定目錄apache
<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節點app
打Jar包時,與此相似webapp
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <outputDirectory>d:\test</outputDirectory> <!--表示將全部的webapps項目下的文件拷貝到相應路徑--> <webappDirectory>d:\test</webappDirectory> </configuration> </plugin>
<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>
<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>
mvn clean package