在完成模块开发后,需要发布jar到nexus上,与此同时,则要部署开发的模块,需要将编译打包的jar复制到指定的路径,再进行部署,而不是手动的去复制那些jar,因为当模块多的话,则会感到特别的烦,所以,利用maven集成的ant来进行这些操作。pom.xml文件配置如下:

  <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<target.dir>F:\生产发布包\发布包</target.dir>
<target.version>2.1.4-1.0-RELEASE</target.version>
</properties> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.1</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<mkdir dir="${target.dir}/${target.version}"/>
<copy todir="${target.dir}/${target.version}" overwrite="true" >
<fileset dir="${project.build.directory}" erroronmissingdir="false">
<include name="*.jar"/>
</fileset>
</copy>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<distributionManagement>
<snapshotRepository>
<id>snapshots</id>
<name>meis</name>
<url>http://191.168.2.1:8081/repository/maven-snapshots/</url>
<uniqueVersion>true</uniqueVersion>
</snapshotRepository>
<repository>
<id>releases</id>
<name>meis</name>
<url>http://191.168.2.1:8081/repository/maven-releases/</url>
</repository>
</distributionManagement>

其中,plugin的artifactId为maven-antrun-plugin的就是Ant插件,tasks的内容可参考Ant的帮助文档,查阅 Ant Tasks;plugin的artifactId为maven-source-plugin的则表示在打包的时候同时打包源码,编译后的jar和源码jar都会被上传至nexus上面;关于nexus的登录名和密码,需要在maven的setting.xml中配置:

    <server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>

需要注意id保持一致;

关于上面copy任务的解说:

1.mkdir为创建对应的文件夹,如已存在则忽略;

2.copy的todir为复制文件的目的地,overwrite为强制覆盖,默认为false;

3.fileset为文件集,dir为目录,${project.build.directory}指的是当前构建路劲,指的是 项目/target 目录,erroronmissingdir为false指的是当目录不存在时忽略掉,默认为抛出异常;

4.include表示文件包含*.jar的文件,指复制*.jar文件,编译的jar和源码jar;

复制任务需设置phase为package,否则jar没有打包就会执行复制任务。

右键运行(Run As)--》Maven build...--》在Goals中输入命令clean deploy,点击Run,则会进行打包,此时可查看控制台信息。

如需重复部署(deploy),则需设置nexus上面release Repository的policy为Allow redeploy

Maven 复制jar到指定目录的更多相关文章

  1. winform复制文件到指定目录

    执行步骤 弹出选择对话框:var openFileDialog = new OpenFileDialog(); 设置选择内容,如所有图片:openFileDialog.Filter="图像文 ...

  2. visual studio使用dos命令在生成项目时复制文件到指定目录

    本人使用软件:vs2015 拷贝“项目1”的 bin目录 下, 项目配置的名称(“Release”,“Debug”)目录下,所有内容到“项目2”输出目录(存在直接覆盖): xcopy $(Soluti ...

  3. 【Linux】【三】linux 复制文件到指定目录

    将  application/file/test/logs/ 下的文件 logs.log , logs.tar 复制到  application/file/test/tools/ 下,并新建文件夹[l ...

  4. 安卓:从assets目录下复制文件到指定目录

    有些时候我们直接将某些资源文件内置到apk中,便于直接使用. 1.首先将文件放置在项目/app/src/main/assets目录中 2.功能代码: public void copyFile(Stri ...

  5. VS生成时复制文件到指定目录

    1.右键项目属性,选择生成事件,再点击"编辑后生成事件",可以直接在编辑框内填写命令行,如图: 2.也可以在弹出的编辑框内,写命令,$(ProjectDir)这种是系统的宏路径,具 ...

  6. linux 系统如何复制文件到指定目录

    首先使用命令函数“cp”  即copy的缩写,    一般模式: cp filename 路径. 如file1在A目录下,我们想把file1复制到B目录下 命令为  cp file1 /home/B ...

  7. Unix 复制文件至指定目录

    cp /gaps/log/20160504/bxdx_20160504.log.Z   /home 将/gaps/log/20160504/bxdx_20160504.log.Z 文件复制到home路 ...

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

    使用Maven插件将依赖包 jar包 war包及配置文件输出到指定目录 写在前面 ​ 最近遇到一个朋友遇到一个项目需要将 maven 的依赖包和配置文件分开打包然后用脚本执行程序.这样的好处在于可以随 ...

  9. Maven打包时集成依赖项或复制依赖项到指定目录

    1.集成依赖项,最后生成的jar文件包含所有依赖: <build> <plugins> <plugin> <artifactId>maven-assem ...

随机推荐

  1. 微信内嵌H5网页 解决js倒计时失效

    项目要求:将H5商城页面嵌套到公司微信公众号里 项目本身的开发跟移动端网页并无太多差异,只是这昨天遇到一个问题,说是棘手,到也简单. 用户下单后,在选择支付方式页面,有个倒计时的逻辑(从下单时开始计算 ...

  2. 【Zookeeper】源码分析之持久化--FileTxnSnapLog

    一.前言 前面分析了FileSnap,接着继续分析FileTxnSnapLog源码,其封装了TxnLog和SnapShot,其在持久化过程中是一个帮助类. 二.FileTxnSnapLog源码分析 2 ...

  3. 微信企业号 JS-SDK:上传图片

    微信的JS-SDK提供了微信客户端相关的功能,如:拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫等微信特有的能力,为微信用户提供更优质的网页体验.这里将会介绍如何通过调用JS ...

  4. HTML <dl> 标签

    <html><body><h2>一个定义列表:</h2><dl>   <dt>计算机</dt>   <dd&g ...

  5. CodeForces 747D Winter Is Coming

    贪心. 只考虑负数的位置,先填间隔较小的,再填间隔较大的.如果填不满就不填,如果有多余就留给最后一个负数到终点这段路. #include<cstdio> #include<cstri ...

  6. Linux CentOS7/RHEL7关闭ctrl+alt+delete功能键

            这是本人测试的经过,纯粹记录来看看,最终解决方法在最后面,中间讲的是遇到的一些坑,可以略过不看!!        本人操作经验,转载请表明出处:http://www.cnblogs.c ...

  7. yarn计算一个节点容量及其配置项

    mapred-site.xml mapreduce.map.memory.mb 1536 每个Map Container的大小 mapreduce.reduce.memory.mb 2560 每个Re ...

  8. 石头剪刀布 OpenJudge 1.6.08

    石头剪刀布是常见的猜拳游戏.石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一样,则不分胜负. 一天,小A和小B正好在玩石头剪刀布.已知他们的出拳都是有周期性规律的,比如:"石头-布-石头-剪 ...

  9. 提示找不到xml配置文件

    ClassPathXmlApplicationContext("applicationContext.xml")默认文件夹是resouerces,所以要把xml文件放在这个下面.

  10. extjs+amcharts生成3D柱状图和数据表格使用总结

    废话不多说,使用extjs+amcharts创建3d柱状图和数据表实例,如下: 1.首先定义一个数据模型 Ext.define("cacheHijack", { extend : ...