“com”在Maven组ID中的含义是什么?有必要吗?
在学校项目中,我们应该使用启用Maven的项目。 Maven是一个管理依赖关系的好系统,所以我很高兴终于学会使用它。“com”在Maven组ID中的含义是什么?有必要吗?
但是我已经开始项目作为NetBeans项目,我现在正在努力如何重新配置它。在创建项目时,IDE建议我将其称为com.myname
。这导致冗余的空文件夹com/myname/{sources start here}
。 Windows资源管理器不像GitHub那么聪明,并且不会跳过空文件夹,这使得它非常烦人。
我在强烈地考虑我会打电话给项目myname
。这有效吗?打破这个惯例有什么风险?这个约定来自哪里,com
的缩写是什么意思?
com
是反向域的一部分。所以,如果您的域名是
somecompany.com
Maven的文物应该被命名为com.somecompany.awesomeThingy
这可以确保当我发表我的
com.someothercompany.awesomeThingy
这也是naming convention for java packages我们没有得到名称冲突。
所有这些都不重要,只要你的maven回购是私人的。一旦你打算发布文物中心虽然,有rules enforcing that you name artifacts using a domain you control。
当然还有其他*域名,所以org
,de
等等都是选项。
这似乎意味着必须是域所有者才能发布库。 – 2015-03-03 12:15:37
我不确定这些规则有多严格,如果有例外,但基本上是。 – 2015-03-03 12:17:28
如果这是一个学校项目,你很可能不想将你的项目发布到Maven Central。 – Jesper 2015-03-03 13:19:05
当然它是有效的。 Eclipse建议这样做,因为它对组织来说通常是有意义的。对于一个学校项目来说,不是那么多。
无论如何,这是一个常见的约定在Java世界中,你应该习惯吧:)
事情是,我在捷克*,我没有域名。那时候,使用'com'确实没有意义。 – 2015-03-03 12:16:33
你当然可以使用'cz' :)我自己总是使用'hu.meskobalazs'作为我的项目。不,我没有这个域名。 – meskobalazs 2015-03-03 12:17:07
此外,如果我有网站主机子域名,我会使用类似'com.freesites.myproject ...'的东西吗? – 2015-03-03 12:19:54
这只是一个Java包名称的一部分。
Java中的包名称与域名相似,但顺序相反。例如,如果某人正在为“somecompany.com”工作,那么他或她通常会使用包名称com.somecompany.someproduct
。
这只是Java世界中的约定。不需要遵守这一惯例。
那么,它只是一个Java公约。理想情况下com是指Commercial,用于商业目的。
你可以使用任何东西而不是com,比如org。或edu。
<groupId>org.codehaus.mojo</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
但是,在未来,你一定需要遵循相同的代码结构。那么,从大学项目本身开始练习呢。
可能的重复[您是否真的在java中使用您的反向域进行包命名?](http://*.com/questions/189209/do-you-really-use-your-reverse-domain-for- package-named-in-java) – Smutje 2015-03-03 12:13:57