Maven将依赖包、jar/war包及配置文件输出到指定目录

2024-03-30 01:08

本文主要是介绍Maven将依赖包、jar/war包及配置文件输出到指定目录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 写在前面
    • 1. 使用 maven-dependency-plugin 插件将依赖包导出到指定文件夹
    • 2. 使用 maven-war-plugin 插件将war打包到指定路径
    • 3. 使用 maven-jar-plugin 插件移除配置文件将其不打包进 jar 包中,并可以将打包后的 jar 包输出到指定路径
    • 4. 使用 maven-resources-plugin 插件将需要复制的文件复制到指定路径(例:将配置文件提取到指定路径)
    • 使用 maven 命令执行打包命令

写在前面

​ 最近遇到一个朋友遇到一个项目需要将 maven 的依赖包和配置文件分开打包然后用脚本执行程序。这样的好处在于可以随时修改配置文件内容及查看 jar 包。如果将所有打成一个 jar 包就会有个问题(例如:修改数据库连接位置需要重新打包这样就失去了使用配置文件的有优点)。

本文利用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节点

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

打Jar包时,与此类似

<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

这篇关于Maven将依赖包、jar/war包及配置文件输出到指定目录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/860139

相关文章

Linux挂载linux/Windows共享目录实现方式

《Linux挂载linux/Windows共享目录实现方式》:本文主要介绍Linux挂载linux/Windows共享目录实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录文件共享协议linux环境作为服务端(NFS)在服务器端安装 NFS创建要共享的目录修改 NFS 配

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

python依赖管理工具UV的安装和使用教程

《python依赖管理工具UV的安装和使用教程》UV是一个用Rust编写的Python包安装和依赖管理工具,比传统工具(如pip)有着更快、更高效的体验,:本文主要介绍python依赖管理工具UV... 目录前言一、命令安装uv二、手动编译安装2.1在archlinux安装uv的依赖工具2.2从github

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

javacv依赖太大导致jar包也大的解决办法

《javacv依赖太大导致jar包也大的解决办法》随着项目的复杂度和依赖关系的增加,打包后的JAR包可能会变得很大,:本文主要介绍javacv依赖太大导致jar包也大的解决办法,文中通过代码介绍的... 目录前言1.检查依赖2.更改依赖3.检查副依赖总结 前言最近在写项目时,用到了Javacv里的获取视频

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资