利用Maven插件將依賴包、jar/war包及配置文件輸出到指定目錄(完整版)

寫在前面

​ 最近遇到一個朋友遇到一個項目需要將maven的依賴包和配置文件分開打包然後用腳本執行程序。這樣的好處在於可以隨時修改配置文件內容及查看jar包。如果將所有打成一個jar包就會有個問題(例如:修改數據庫連接位置需要重新打包這樣就失去了使用配置文件的有優點)

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”-->						            <outputDirectory>${project.build.directory}/lib</outputDirectory>
							<excludeTransitive>false</excludeTransitive>
							<stripVersion>false</stripVersion>
							<includeScope>runtime</includeScope>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

 

2. 使用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>

 

3. 使用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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章