摘要:前言虽然势头很猛,但是依然是项目构建的优先选择,本文简要介绍一些工程实践多模块如果工程比较复杂,或者预期后续会变的比较复杂,可以将工程分成多个模块,常用的分模块的方法,核心代码,工具,服务,前端在顶层文件中声明工程包含的各个模块在子模块文件
前言
虽然 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-pluginmaven-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-pluginmaven-dependency-plugin 用于管理依赖,一个应用场景是将依赖的 jar 包解开合并到工程中
</>复制代码
maven-dependency-plugin
prepare-package
unpack
com.compony.xxx
yyy
${project.build.outputDirectory}
总结
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/66874.html
摘要:接下来,本文将重点阐述在环境的多模块构建过程。本项目传送门一创建聚合父工程首先使用来快速创建好一个工程。然后在里面声明该父工程包含的子模块。 序言:比起传统复杂的单体工程,使用Maven的多模块配置,可以帮助项目划分模块,鼓励重用,防止POM变得过于庞大,方便某个模块的构建,而不用每次都构建整个项目,并且使得针对某个模块的特殊控制更为方便。接下来,本文将重点阐述SpringBoot在M...
摘要:响应式编程是基于异步和事件驱动的非阻塞程序,只是垂直通过在内启动少量线程扩展,而不是水平通过集群扩展。三特性常用的生产的特性如下响应式编程模型适用性内嵌容器组件还有对日志消息测试及扩展等支持。 摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 02:WebFlux 快速入门实践 文章工程: JDK...
摘要:重度强迫症患者取消大小写敏感,让自动完成更齐全。如何为当前项目工程添加多个模块啊答对着工程右键选择通常选择,如图写在最后欢迎关注喜欢和点赞后续将推出更多的工具集教程,敬请期待。公众号回复面试,领取面试实战学习资源。 showImg(https://segmentfault.com/img/remote/1460000018862588); 前言:IntelliJ IDEA 如果说Int...
阅读 3465·2021-11-23 09:51
阅读 3137·2021-10-28 09:33
阅读 1117·2021-10-08 10:04
阅读 3852·2021-09-22 15:13
阅读 1141·2019-08-30 15:55
阅读 3039·2019-08-30 15:44
阅读 712·2019-08-30 13:04
阅读 3060·2019-08-30 12:56