java - Maven 属性 ${project.artifact.selectedVersion.majorVersion}

标签 java maven

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

可以将变量解析为majorVersionminorVersion, 但默认的 defaultPrefixparsedVersion.{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/

相关文章:

java - 使用 hibernate/spring 一次加载所有惰性集合

java - 将 URL 映射到最具体的上下文根

java - 为什么数据没有显示在我的 ListView 上?

java - 未找到具有 URI 的 HTTP 请求的映射(spring 4.1 注释配置)

xml - 使用 Maven 解析 JUnit 结果 XML 格式(由第 3 方工具创建)

java - Spring Boot maven 插件找不到主类,无法执行 java

java - 逆向工程升级到 Hibernate 3.6 错误

java - Selenium (Java) - 根据其他属性获取列表 id

java - 在没有连接的情况下使用 Hibernate 4 生成 DDL

java - SpringMVC 无法在 Netbeans 8.2 中工作(maven 构建)