利用Maven插件将依赖包、jar/war包及配置文件输出到指定目录(完整版)

大数据问题解决方案 专栏收录该内容
2 篇文章 0 订阅

写在前面

​ 最近遇到一个朋友遇到一个项目需要将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

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值