我在许多 pom.xml 文件中看到使用此属性: ${project.artifact.selectedVersion.majorVersion}
例如:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>my_group</groupId>
<artifactId>my_artifact</artifactId>
<packaging>pom</packaging>
<version>1.2.3-SNAPSHOT</version>
<properties>
<ver>${project.artifact.selectedVersion.majorVersion}</ver>
...
此属性不在标准 Maven 中:http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide
那么,这个变量是在哪里定义的呢?
我看到它有 build-helper-maven-plugin 插件:http://mojo.codehaus.org/build-helper-maven-plugin/parse-version-mojo.html
可以将变量解析为majorVersion
和minorVersion
,
但默认的 defaultPrefix
是 parsedVersion.{majorVersion, minorVersion}
,
而不是 project.artifact.selectedVersion.{majorVersion, minorVersion}
...
(并且 defaultPrefix
没有在我正在查看的那些 pom.xml 文件中定义)
那么,变量 ${project.artifact.selectedVersion.majorVersion}
在哪里定义的?
最佳答案
通常要做的事情是从the MavenProject
JavaDocs开始并单击属性路径。
MavenProject
-> .getArtifact()
-> Artifact
-> .getSelectedVersion()
-> ArtifactVersion
-> .getMajorVersion()
对于 pom.xml 中的每个 XML 元素,MavenProject
中都有一个相应的 JavaBean 属性,句点分隔属性属性的路径。
关于java - Maven 属性 ${project.artifact.selectedVersion.majorVersion},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16302247/