java - Maven 属性的约定 : "dot case" or "camel case"?

标签 java maven properties pom.xml camelcasing

使用 java 和 Maven , Maven 属性的约定是什么?

我在这里发布了 2 个例子,这两个例子都被广泛使用。根据惯例,哪一个是正确的?

示例 A

<properties>
    <hibernate.version>4.3.8.Final</hibernate.version>
    <hsqldb.version>2.3.2</hsqldb.version>
    <log4j2.version>2.0.2</log4j2.version>
</properties>

示例 B

<properties>
    <hibernateVersion>4.3.8.Final</hibernateVersion>
    <hsqldbVersion>2.3.2</hsqldbVersion>
    <log4j2Version>2.0.2</log4j2Version>
</properties>

编辑:

这里是一个链接 Maven Properties Guide . Maven 属性的一些示例包括 ${project.build.directory} (点大小写)和 ${project.build.outputDirectory} (点大小写和驼峰大小写)。

和官方文档Maven POM Reference建议一个名为 <someVar> 的示例属性( Camel 案)。

最佳答案

看了相关文档,答案一直很明确。

dot.case 之间的明显冲突和 camelCase是一个用于引用 POM 中的层次结构,而另一个用于变量命名

例如,让我们看一下${project.build.outputDirectory} .这里的点符号,据我理解,指的是变量所在的pom结构,而变量名本身确实是驼峰式。

<project>
  <build>
    <outputDirectory>/opt/foo</outputDirectory>
  </build>
</project>

换句话说,约定如下:

  • 要引用位于 POM 中其他位置的变量,请组合路径段,例如 projectbuild.分隔符,即使用 dot.case。例子:
    • project.build.<variable>
    • maven.compiler.<variable>
  • 要命名实际路径段,包括变量名本身(最后一段),请使用lowerCamelCase。例子:
    • outputDirectory (如 project.build.outputDirectory )
    • target (如 maven.compiler.target )

值得注意的是,大多数开源项目(包括例如 Spring Boot、预 Gradle 迁移 - 请参阅 here )使用 .version作为路径段,而不是作为变量名称的补充。

一致性是最重要的考虑因素。如果您的代码库使用 someDependencyVersion , 坚持下去 - 否则更喜欢 someDependency.version .

关于java - Maven 属性的约定 : "dot case" or "camel case"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30297777/

相关文章:

java - 是否可以在自定义的 Maven 原型(prototype)中提供动态目录结构

java - 从文件读取时如何将 0 填充到 1 到 1000 之间的数字?

java - 无法在Win7 cmd中运行已编译的.class java文件

java - Spring安全+LDAP。无法调试

maven - 如何使用 NetBeans 将对 Maven Web 应用程序资源 (WAR) 项目的额外依赖项添加到 Maven 存储库?

debugging - 如何在发生时打印所有Java编译器输出?

c# - 在 C# 中获取、设置属性的真正目的是什么?

security - WSO2 ESB 获取认证名称

java - JAR部署时文件目录错误

java.lang.RuntimeException : Unable to start activity ComponentInfo:android. view.InflateException