工作中经常遇到打包,但往往得过且过,使用命令mvn clean install dDmaven.skip.test=true,一行命令编译完出jar包,手动替换到环境验证就完了。至于jar包在CI构建中如何编译后打包到对应安装包位置,不甚了解。这里介绍maven的简单插件,帮助我们在编译源码出jar包后,如何移动jar包。下面是我工作中遇到maven构建开始疑惑的几个问题:
- mvn正常编译后jar包的位置?
- 如何编译后将jar包移动到我想要的位置?
- 一些静态资源未被打包进jar包怎么办?
- …
插件介绍
首先我们看知识的源头maven插件官网,如下是打包插件总览:
工作中,一般主要涉及jar、war包相关,于是上述的 jar 和 war 插件是我们要关注的。后面的 source 插件等一般不涉及。
- mvn正常编译后jar包的位置?默认target目录下
1.1 maven-jar-plugin默认不用声明,即不会在pom.xml的... 中看到。mvn构建生命周期默认携带
1.2jar 不管是否直接声明,pom.xml中默认的打包类型就是jar包。
1.3 compile阶段会编译src/main/java/下的java资源,连带src/main/resources打jar包放置在pom同级的target目录下。
1.4 source插件 仅用于将源码打入jar包。一般工作中涉及不到。具体的使用可以参考这篇博客《Maven自定义绑定》 - 如何编译后将jar包移动到我想要的位置?总共6种方式,前三种较为常见。
2.1 通过maven-jar-plugin指定outputDirectory输出路径
2.2 通过maven-resources-plugin指定outputDirectory输出路径
2.3 通过maven-antrun-plugin复制jar包
2.1 通过maven-jar-plugin指定outputDirectory输出路径2.2 通过maven-resources-plugin指定outputDirectory输出路径 org.apache.maven.plugins maven-jar-plugin D:test ***.xml **/*.yml static/** templates/** 2.3 通过maven-antrun-plugin复制jar包 org.apache.maven.plugins maven-resources-plugin copy-resources package copy-resources UTF-8 D:test1 src/main/resources/ copy-bulid package copy-resources UTF-8 D:test2 target org.apache.maven.plugins maven-antrun-plugin 1.8 install install run clean clean run
- 一些静态资源未被打包进jar包怎么办?三种方式
Maven AntRun 插件
看这篇就够了,《Ant之build.xml配置详解》



