首页 > 其他分享 >Maven打包到指定位置

Maven打包到指定位置

时间:2022-09-30 22:31:08浏览次数:72  
标签:maven plugin jar 指定 Maven 文件夹 antrun resources 打包


目录

​前言​

​方式一:通过maven-jar-plugin指定outputDirectory输出路径​

​方式二:通过maven-resources-plugin指定outputDirectory输出路径​

​方式三:通过maven-antrun-plugin复制jar包​

​方式四:通过maven-antrun-plugin嵌入build.xml文件​

​方式五:使用distributionManagement设置存放路径​

​扩展:使用maven-dependency-plugin 插件将依赖包导出到指定文件夹​

前言

maven打完jar包之后,默认放置位置是target目录

有时候项目需要,如何将jar包放置到指定的目录呢?

方式一:通过maven-jar-plugin指定outputDirectory输出路径

 可以排除某些配置文件,没有文件夹的话会自动创建!

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<!-- 指定打包的jar包输出路径 -->
<outputDirectory>D:\test</outputDirectory>
<!--不打入jar包的文件类型或者路径 -->
<excludes>
<exclude>**/*.properties</exclude>
<exclude>**/*.xml</exclude>
<exclude>**/*.yml</exclude>
<exclude>static/**</exclude>
<exclude>templates/**</exclude>
</excludes>
</configuration>
</plugin>

方式二:通过maven-resources-plugin指定outputDirectory输出路径

<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>
D:\test1
</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>
D:\test2
</outputDirectory>
<resources>
<resource>
<directory>target</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>

方式三:通过maven-antrun-plugin复制jar包

Maven已经成为Java 工业领域事实上的构建标准,但在某些情况下,如果可以用Ant命令,还是很方便的。借助 maven-antrun-plugin 插件,可以在Maven执行时,额外执行Ant脚本如下列配置所示:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<configuration>
<target>
<echo message="*******************install*******************" />
<mkdir dir="${basedir}/target/classes" />
<copy todir="../target/commons" overwrite="true">
<fileset dir="${project.build.directory}"
erroronmissingdir="false">
<include name="*.jar" />
</fileset>
</copy>
<move file="${project.build.directory}/xxxxxxx.jar"
tofile="${project.build.directory}/xxx.jar" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<execution>
<id>clean</id>
<phase>clean</phase>
<configuration>
<target>
<echo message="*******************clean*******************" />
<delete dir="target" />
<mkdir dir="${basedir}/target/classes" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>

<execution>是可执行命令,可以修改maven的命令执行过程,下面的两个execution是修改了installclean

<echo>是打印命令;

<mkdir>是创建文件夹命令;(文件夹里面没有东西时好像不会创建出来)

<copy>是复制命令,其中todir是目标文件夹,overwrite是覆盖旧文件,<fileset dir="xxxx">是源文件,<include>是包含jar包;

<move>是移动文件或者修改名称命令

<delete>是删除命令;

${basedir} 指的是 项目根路径 
${project.build.directory} 指的是 target所在目录
${project.build.finalName} 指的是 jar包前缀名

方式四:通过maven-antrun-plugin嵌入build.xml文件

如下列配置所示:

将build.xml放到项目根路径下,使用<ant antfile="${basedir}/build.xml">嵌入build.xml文件即可。

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<configuration>
<target>
<property name="compile_classpath"
refid="maven.compile.classpath" />
<property name="runtime_classpath"
refid="maven.runtime.classpath" />
<property name="test_classpath"
refid="maven.test.classpath" />
<property name="plugin_classpath"
refid="maven.plugin.classpath" />

<ant antfile="${basedir}/build.xml">
<target name="test" />
</ant>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>

方式五:使用distributionManagement设置存放路径

这种方式没有通过插件,而是直接配置distributionManagement

使用deploy命令可以部署到目标文件夹,没有文件夹的话会自动创建!

<distributionManagement>
<repository>
<id>localRepository</id>
<url>file:D:/testRepository</url>
</repository>
</distributionManagement>

扩展:使用maven-dependency-plugin 插件将依赖包导出到指定文件夹

这种方式是将依赖包输出到指定路径

<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>
<!-- 指定输出路径 -->
<outputDirectory>D:\test2</outputDirectory>
<excludeTransitive>false</excludeTransitive>
<stripVersion>false</stripVersion>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>

参考文献:

1.​​Referencing the Maven Classpaths​

2.​​利用Maven插件将依赖包、jar/war包及配置文件输出到指定目录​

3.​​maven-antrun-plugin的使用​

4.​​centos7 搭建nexus 仓库配置和maven发布jar包到仓库​

标签:maven,plugin,jar,指定,Maven,文件夹,antrun,resources,打包
From: https://blog.51cto.com/u_15801765/5727472

相关文章

  • Python抖音视频去水印,并打包成exe可执行文件
    前言抖音里面的视频保存之后,会发现全都带有水印,所以如何解决视频去除水印就很有必要,所以教程来了,本次教程不仅会教大家如何去除视频里的水印,并且教大家将程序制作成exe可......
  • python exe打包后无法执行定时任务(apscheduler框架)
    问题:在代码中使用了apscheduler框架,importtzlocalscheduler=BackgroundScheduler(executors=executors,job_defaults=job_defaults,timezone=str(tzlocal.get_local......
  • 使用WIX 进行商业智能OEM打包
    WIX软件打包肯定多很多同学也都不陌生,但如何使用WIX对数据可视化大屏进行OEM打包,有很多同学不太清楚具体过程,今天这里就为大家介绍一下,关于如何用WIX打包工具完成对Wyn安装......
  • gitlab拉取指定目录
    1.新建目录mkdirgit2.初始化本地目录gitinit3.启用过滤的配置项gitconfigcore.sparsecheckouttrue4.想要拉取哪个文件夹,就将其写入下述文件中,注意.git......
  • Qt Quick 打包
    以打包my.exe为例1、把my.exe放到空文件里,如D:/dabao/2、终端中进入exe目录cd/dd:/dabao3、敲如下命令,注意自己的qml安装目录windeployqt--qmldirC:\Qt\6.3.2\m......
  • VUE2速成-5(插件及打包)
    文章目录​​一、Vue的插件大全​​​​二、Vue插件举例​​​​1.轮播图插件(vue-awesome-swiper)​​​​2.UI组件库(ElementUI)​​​​三、vue-cli打包部署​​一、Vue的......
  • ECharts柱状图,随机或者指定改变颜色
    //指定颜色itemStyle:{color:function(params){varcolorarrays=["#990033","#ff66cc","#3300cc","#ffcc00","#339933","#66cccc"]......
  • vscode 指定 anaconda创建的python虚拟环境
    1点击左下角的设置。2点击commandpalette。3搜索框输入Python:SelectInterpreter。4选择虚拟环境。......
  • 使用Java打包下载zip文件
    本文提供打包下载目标url文件为zip解决方案工具类packagecom.solvay.utils.file;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importjavax.servlet.h......
  • linux常用命令(八) tar 打包、压缩、解包、解压缩
    Linux常用的压缩与解压缩命令有:tar、gzip、gunzip、bzip2、bunzip2、compress、uncompress、zip、unzip、rar、unrar等。首先要弄清两个概念:打包和压缩。打包是指将......