使用 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 中其他位置的变量,请组合路径段,例如
project
或build
与.
分隔符,即使用 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/