6

我在许多 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

它可以将变量解析为majorVersionand minorVersion,但默认defaultPrefixparsedVersion.{majorVersion, minorVersion}, 而不是project.artifact.selectedVersion.{majorVersion, minorVersion}... (并且在defaultPrefix我正在查看的那些 pom.xml 文件中没有定义)

那么,变量在哪里${project.artifact.selectedVersion.majorVersion}定义?

4

1 回答 1

5

要做的事情通常是从 JavaDocs 开始MavenProject单击属性路径。

MavenProject-> .getArtifact()-> Artifact-> .getSelectedVersion()-> ArtifactVersion->.getMajorVersion()

对于 pom.xml 中的每个 XML 元素,在 中都有一个对应的 JavaBean 属性MavenProject,句点分隔属性的属性路径。

于 2013-04-30T14:56:11.650 回答