maven常用插件实用技巧
来源:互联网 发布:mac ndk下载地址 编辑:程序博客网 时间:2024/04/30 08:18
使用maven-war-plugin插件打包时动态排除指定文件或者文件夹
比如程序中使用的日志框架是logback,我们知道,logback框架在寻找配置文件的时候,首先寻找classes目录下的logback-test.xml配置文件,如果没有寻找到,再使用logback.xml配置文件,利用这个特性,我们可以在src/main/resources目录下放两个配置文件logback-test.xml和logback.xml,其中logback-test.xml文件可以写死日志输出目录,而logback.xml中支持动态配置日志输出目录以及定期压缩日志等功能,这样的话在IDE中启动项目的时候就使用的logback-test.xml配置,当使用mvn package命令打包项目时需要排除该配置文件,配置如下
<plugin> <artifactId>maven-war-plugin</artifactId> <version>2.2</version> <configuration> <!--打包的时候排除logback-test.xml--> <packagingExcludes>WEB-INF/classes/logback-test.xml</packagingExcludes> </configuration></plugin>
使用maven-jar-plugin和maven-dependency-plugin打包可执行jar工程,同时拷贝全部依赖jar文件到指定目录
比如有一个demo工程,是个jar工程,而且还有自己的main方法,那么这就是个可执行jar工程,这个jar工程依赖了很多第三方jar,默认情况下直接执行mvn package后生成的jar文件是不可执行的,因为生成的jar包中没有MANIFEST.MF文件以及没有指定main方法的入口,此外,也没有将相关依赖jar包关联进来,所以需要配置一下以下插件
<!--打包jar文件时,配置manifest文件,加入lib包的jar依赖--><plugin> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>cn.cjc.main.DemoMain</mainClass> <!--强制SNAPSHOT版本的jar在MANIFEST文件中不使用时间戳作为文件名--> <useUniqueVersions>false</useUniqueVersions> </manifest> </archive> </configuration></plugin><!--拷贝依赖的jar包到lib目录--><plugin> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory> ${project.build.directory}/lib </outputDirectory> </configuration> </execution> </executions></plugin>
其中mainClass
标签用来配置main方法入口类,useUniqueVersions
一般情况下不需要配置,但是如果demo项目依赖了SNAPSHOT版本的jar,如果不配值此标签的话,在生成的MANIFEST.MF文件中Class-Path一栏指定的此依赖jar文件路径会带上时间戳,而进行拷贝依赖的jar包到lib目录这一步操作时,该依赖jar包文件名中是不含有时间戳的,所以启动demo项目的时候就会找不到这个SNAPSHOT版本的jar文件。
经此配置,会在target目录下生成demo.jar文件,同时会有一个lib目录,里面包含全部的依赖jar包,使用的时候只需要将demo.jar和lib目录同时拷贝到同一个目录即可。
- maven常用插件实用技巧
- 常用Maven插件介绍
- Maven常用插件
- Maven常用插件集合
- Maven常用插件列表
- 常用Maven插件介绍
- Maven常用插件介绍
- 常用Maven插件介绍
- 常用Maven插件介绍
- 常用Maven插件介绍
- 常用Maven插件介绍
- 常用Maven插件介绍
- 常用Maven插件介绍
- maven常用插件
- Maven常用插件
- Maven常用插件作用
- 常用Maven插件
- 常用Maven插件介绍
- echart线形图相关
- maven整合ssm遇到的小问题1
- JavaSE学习--内部类
- php json_encode 大括号中括号
- DictWriter 输出CVS空一行
- maven常用插件实用技巧
- 用matplotlib.plt作散点图的Python代码
- MySQL
- 通讯录第二版
- java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
- ctags使用方法 ctags的使用方法
- 算法细节系列(23):回溯
- gdx 打包可执行 jar 不会包含源码 src 目录下的资源
- Kotlin