在完成模块开发后,需要发布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

最新文章

  1. NOI2018准备Day3
  2. AJAX-----13HTML5中新增的API---FormData
  3. ABAP字符串翻转
  4. Markov Random Fields
  5. linux install mpi4py
  6. C# let 子句
  7. 背包DP入门小笔记01背包
  8. css 滚动视差 之 水波纹效果
  9. 【安富莱】【RL-TCPnet网络教程】第10章 RL-TCPnet网络协议栈移植(FreeRTOS)
  10. 剖析height百分比和min-height百分比
  11. css at @ 规则
  12. Python MD5算法使用
  13. Nginx负载均衡中后端节点服务器健康检查的操作梳理
  14. [日常] Go语言圣经-并发的非阻塞缓存
  15. Visual Studio2013安装过程
  16. Lua的文件操作
  17. 苏州Uber优步司机奖励政策(4月24日)
  18. 四种更新UI的方法
  19. linux系统UDP的socket通信编程
  20. 20155233 2006-2007-2 《Java程序设计》第3周学习总结

热门文章

  1. 一键强制修改任意Mysql数据库的密码,修改任意环境Mysql数据库。
  2. 借助OpenOffice实现office转pdf(Java)的.exe小程序
  3. Long类型比较大小,long型和Long型区别
  4. C#笔记(一)常量
  5. Webupload + MVC 之上传下载
  6. Atom编辑器之加快React开发的插件汇总
  7. CSS 待解决问题
  8. [SQL基础教程] 1-5 表的删除和更新
  9. [转] Gvim for windows中块选择的方法
  10. Scala 类和对象