“com”在Maven组ID中的含义是什么?有必要吗?

问题描述:

在学校项目中,我们应该使用启用Maven的项目。 Maven是一个管理依赖关系的好系统,所以我很高兴终于学会使用它。“com”在Maven组ID中的含义是什么?有必要吗?

但是我已经开始项目作为NetBeans项目,我现在正在努力如何重新配置​​它。在创建项目时,IDE建议我将其称为com.myname。这导致冗余的空文件夹com/myname/{sources start here}。 Windows资源管理器不像Gi​​tHub那么聪明,并且不会跳过空文件夹,这使得它非常烦人。

我在强烈地考虑我会打电话给项目myname。这有效吗?打破这个惯例有什么风险?这个约定来自哪里,com的缩写是什么意思?

+0

可能的重复[您是否真的在java中使用您的反向域进行包命名?](http://*.com/questions/189209/do-you-really-use-your-reverse-domain-for- package-named-in-java) – Smutje 2015-03-03 12:13:57

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等等都是选项。

+0

这似乎意味着必须是域所有者才能发布库。 – 2015-03-03 12:15:37

+0

我不确定这些规则有多严格,如果有例外,但基本上是。 – 2015-03-03 12:17:28

+1

如果这是一个学校项目,你很可能不想将你的项目发布到Maven Central。 – Jesper 2015-03-03 13:19:05

当然它是有效的。 Eclipse建议这样做,因为它对组织来说通常是有意义的。对于一个学校项目来说,不是那么多。

无论如何,这是一个常见的约定在Java世界中,你应该习惯吧:)

+0

事情是,我在捷克*,我没有域名。那时候,使用'com'确实没有意义。 – 2015-03-03 12:16:33

+0

你当然可以使用'cz' :)我自己总是使用'hu.meskobalazs'作为我的项目。不,我没有这个域名。 – meskobalazs 2015-03-03 12:17:07

+0

此外,如果我有网站主机子域名,我会使用类似'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> 

但是,在未来,你一定需要遵循相同的代码结构。那么,从大学项目本身开始练习呢。