问题描述
我们目前正在尝试淡化我们公司中的现有项目.我们已经执行了POC,目前正在记录我们的学习和准则.我为Maven工件提出了以下命名约定.请在同一页面上分享您的评论
We are currently trying to mavenize the existing projects in our company. We have executed a POC and are currently documenting our learnings and guidelines. I have come up the following naming convention for the maven artifacts. Please share your comments on the same
注意:在我们公司中,项目名称始终是唯一的
Note: In our company, projectname is always unique
- groupId:org.companyname.projectname
- artifactId:org.companyname.projectname
- 版本:x.x.x
例如:org.companyname.projectname:org.companyname.projectname-1.0.0.pom
eg : org.companyname.projectname:org.companyname.projectname-1.0.0.pom
- groupId:org.companyname.projectname
- artifactId:org.companyname.projectname.modulename
- 版本:x.x.x
例如:org.companyname.projectname:org.companyname.projectname.modulename-1.0.0.jar
eg: org.companyname.projectname:org.companyname.projectname.modulename-1.0.0.jar
- groupId:org.companyname.projectname
- artifactId:org.companyname.projectname
- 版本:x.x.x
例如:org.companyname.projectname:org.companyname.projectname-1.0.0.pom
eg : org.companyname.projectname:org.companyname.projectname-1.0.0.pom
- groupId:org.companyname.projectname
- artifactId:org.companyname.projectname.subcategory
- 版本:x.x.x
例如:org.companyname.projectname:org.companyname.projectname.subcategory-1.0.0.pom
eg : org.companyname.projectname:org.companyname.projectname.subcategory-1.0.0.pom
- groupId:org.companyname.projectname
- artifactId:org.companyname.projectname.subcategory.modulename
- 版本:x.x.x
例如:org.companyname.projectname:org.companyname.projectname.subcategory.modulename-1.0.0.jar
eg : org.companyname.projectname:org.companyname.projectname.subcategory.modulename-1.0.0.jar
推荐答案
IMO,您无需在artifactId中包含org.companyname
-它只是复制groupId中已经存在的信息,因此使工件名称更长且可读性更差
IMO you need not include org.companyname
in the artifactId - it is just duplicating the information already present in the groupId, thus making the artifact names longer and less readable.
更新:仅供参考,通过查看我们项目的依赖关系,我可以看到很多类似的示例,例如
Update: FYI, looking through the dependencies of our project, I see plenty of similar examples, e.g.
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jboss-maven-plugin</artifactId>
<groupId>net.sf.barcode4j</groupId>
<artifactId>barcode4j-fop-ext-0.20.5-complete</artifactId>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<groupId>opensymphony</groupId>
<artifactId>oscache</artifactId>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-libs</artifactId>
<groupId>javax.resource</groupId>
<artifactId>connector-api</artifactId>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
然后在很多情况下,组ID和工件ID都是相同的非限定名称,例如:
And then there are many where the group and artifact IDs are the same unqualified name, e.g.:
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<groupId>velocity</groupId>
<artifactId>velocity</artifactId>
<groupId>fop</groupId>
<artifactId>fop</artifactId>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
但是我还没有看到任何具有完全限定的组ID和相同的工件ID(例如,对于Log4J为org.apache.log4j:org.apache.log4j
).
But I haven't seen any having a fully qualified group ID and an identical artifact ID (which e.g. for Log4J would be org.apache.log4j:org.apache.log4j
).
这篇关于Maven工件的命名约定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!