MAVEN和JAVA包的命名约定
提出问题
使用MAVEN构建模块化项目时,我的组织结构如下。
根模块
文件夹名称: package-module-project
pom.xml文件:
com.chuillusion
chuillusion-package
0.0.1-快照
pom
chuillusionCore
chuillusionBrowser
chuillusionApp
chuillusionDemo
子模块
2.1核心模块
文件夹名称: chuillusionCore
pom.xml文件:
chuillusion-package
com.chuillusion
1.0-快照
4.0.0
chuillusion.core
Java软件包名称: com.chuillusion.cores是根软件包
有问题
项目文件夹名称与maven的artifactId不匹配
根模块项目的名称为package-module-project,与根对应的artifactId为chuillusion-package
java包的名称与maven不匹配
核心模块的java根软件包名称为com.chuillusion.cores,核心项目的artifactId名称为chuillusion.core
idea显示不一致
如果项目名称与artifactId不匹配,idea将在项目名称中显示artifactId
例如chuillusioncore [ Chu illusion.core ],即项目名称[artifactId]
命名规则研究
官方网站说明
参考MAVEN官方文档的命名约定
指南管理转换组,artifact id和版本
groupidwillidentifyyourprojectuniquelyacrossallprojects,soweneedtoenforceanamingschema.ithastofollowthepackagenamerules, watmeansthathastobeatleastasadomainnameyoucontrol,andyoucancreateasmanysubgroupsasyouwant.look at
moreinformationaboutpackagenames。
eg. org.apache.maven,org.apache.commons
agoodwaytodeterminethegranularityofthegroupidistousetheprojectstructure.thatis,ifthecurrentprojectisamultiplemoduleproject
eg. org.apache.maven,org.apache.maven.plugins,org.apache.maven.reporting
artifactidisthenameofthejarwithoutversion.ifyoucreateditthenyoucanchoosewhatevernameyouwantwithlowercaselettersandnostranges
eg. maven,commons-math
versionifyoudistributeitthenyoucanchooseanytypicalversionwithnumbersanddots (1.0、1.1、1.0.1, don ' tusedatesastheyareusuallyassociatedwithsnapshot (nightly ) builds.ifit ' sathirdpartyartifact,youhavetousethethereririraty
EG.2.0、2.0.1、1.3.1
驱动程序包案例分析
mysql
mysql-connector-java
5.1.43
生成的包名称为MySQL : MySQL-connector-Java-5.1.43.jar,即groupid 3360 artifact id-version.jar
源代码结构: com.mysql作为项目的根包
疑问:个人觉得没有按照规范命名
assertj分析
org.assertj
Assertj -核心
3.8.0
源代码结构: org.assertj.core作为根包
logback分析
ch.qos.logback
logback-classic
1.3.0-阿尔法3
测试
源代码结构: ch.qos.logback.classic作为根包
结论
1 )源包必须以groupId开头,后跟artifactId作为根包
命名规格
养成良好的编码习惯,从命名规范入手
重命名项目
项目名称对应于artifactId,源目录对应于整体结构
根模块
项目名称: package-module-project
com.chuillusion
软件包-模块-项目
0.0.1-快照
pom
chuillusion-core
chuillusion-browser
chuillusion-app
chuillusion-demo
因为root项目是空结构,并且只有一个pom文件管理子模块,所以没有源目录结构
核心模块变更
修正方法1 :
项目名称: chuillusion-core
软件包-模块-项目
com.chuillusion
1.0-快照
4.0.0
chuillusion-core
源代码根结构: com.chuillusion.core
修改方式2
项目名称:酷睿
软件包-模块-项目
com.chuillusion
1.0-快照
4.0.0
核心
源代码根结构: com.chuillusion.core
说明
写这篇文章是因为1 )项目遇到的问题; 2 )百度没有相关文章
等待您指出文章错误的评论。 谢谢你。