博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Maven 工程实践
阅读量:7111 次
发布时间:2019-06-28

本文共 3755 字,大约阅读时间需要 12 分钟。

前言

虽然 Gradle 势头很猛,但是 Maven 依然是 Java 项目构建的优先选择,本文简要介绍一些 Maven 工程实践

多模块(multiple module)

如果工程比较复杂,或者预期后续会变的比较复杂,可以将工程分成多个模块,常用的分模块的方法:

  • core,核心代码)

  • util/common,工具

  • service,服务

  • web/front,web 前端

在 root(顶层)pom 文件中声明工程包含的各个模块

...
pom
core
service
util
web

在子模块 pom 文件中声明 parent pom

...
com.aachuxing.gov.report
...
1.0

插件

使用 Maven 离不开各种各样的插件,简单介绍一下常用的插件,详细使用说明可以参考官方文档,或者直接 google/baidu,在声明插件的时候推荐:

  • 将 属性值(jdk.version)定义在 properties 标签中

  • 将 build 标签声明在 root pom 中

maven-compiler-plugin

maven-compiler-plugin 可以指定 jdk 版本,推荐设置 jdk8 以上版本

...
1.8
org.apache.maven.plugins
maven-compiler-plugin
${jdk.version}
${jdk.version}
${jdk.version}

maven-surefire-plugin

maven-surefire-plugin 用来排除一些你不想在持续集成中运行 test case,它们可能仅仅是你用来测试你的代码,比如测试 dao 中 SQL 书写是否有问题

...
org.apache.maven.plugins
maven-surefire-plugin
2.19.1
**/XXXTest.java

maven-assembly-plugin

通常一个 Java 工程除了 jar 包之外还有各种各样的文件:shell 脚本,properties(属性)文件,数据文件(json, xml),使用 maven-assembly-plugin 可以对工程打包部署做深度定制

...
org.apache.maven.plugins
maven-assembly-plugin
2.6
make-assembly
package
single
src/main/assembly/assembly1.xml
src/main/assembly/assembly2.xml
src/main/assembly/assembly3.xml

assembly.xml 配置文件用于配置具体的打包过程,在 descriptors 标签中可以指定多个配置文件,实现一套代码打出多个 "渠道包"

下面是一个 assembly.xml 文件示例:

${id}
tar.gz
false
src/main/assembly/bin
bin
startup.sh
shutdown.sh
0755
${project.build.directory}/classes
/
config.properties
log4j2.xml
0644
lib
  • formats,通过后缀名指定打包文件格式,tar.gz, zip, war .etc

  • fileSets,指定哪些文件被打到包里头

maven-dependency-plugin

maven-dependency-plugin 用于管理依赖,一个应用场景是将依赖的 jar 包解开合并到工程中

maven-dependency-plugin
prepare-package
unpack
com.compony.xxx
yyy
${project.build.outputDirectory}

总结

转载地址:http://vvmhl.baihongyu.com/

你可能感兴趣的文章
webpack打包ES6降级ES5
查看>>
基于animatge.css的js动画库
查看>>
分解模式 - 按业务领域分解模式划分微服务
查看>>
居中元素总结
查看>>
class与classloader的getResourceAsStream(String name)
查看>>
搭建vue脚手架---vue-cli
查看>>
【算法学习笔记】87. 枚举路径 SJTU OJ 1999 二哥找宝藏
查看>>
Getting to know the Q texture coordinate...
查看>>
ElasticSearch 从零到入门
查看>>
Daily scrum[2013.11.29]
查看>>
oracle维护数据的完整性
查看>>
解决 Eclipse 导入项目后 Maven Dependencies missing jar 问题
查看>>
20145237 《Java程序设计》第七周学习总结
查看>>
Foundation 框架 归档
查看>>
P4111 [HEOI2015]小Z的房间
查看>>
jzoj5984. 【北大2019冬令营模拟2019.1.1】仙人掌 (分块)
查看>>
洛谷P2765 魔术球问题(最大流)
查看>>
python 正则之字母匹配
查看>>
url组成
查看>>
Jquery UI Dialog Demo
查看>>