2

私の Java プログラムには maven 3.0.5 と aether 1.13.1 ライブラリが埋め込まれており、次のように使用します。

ProjectBuildingResult projectBuildingResult =
projectBuilder.build(myArtifact, projectBuildingRequest);

ここの ${spring.version} など、pom ファイルで使用されるすべてのプロパティが正常に解決されます。

  <project>
    <groupId>my_group</groupId>
    <artifactId>my_artifact1</artifactId>
    <version>2.3.0-SNAPSHOT</version>

    <properties>
      <spring.version>3.1.4.RELEASE</spring.version>
    </properties>

    <dependencies>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>my_group</groupId>
        <artifactId>my_artifact2</artifactId>
        <version>${project.artifact.selectedVersion.majorVersion}</version>
      </dependency>
    </dependencies>
  </project>

あれは、

projectBuildingResult.getProject().getDependencies().get(0).getVersion() 

期待どおり、「${spring.version}」ではなく「3.1.4.RELEASE」を返します。

ただし、プロパティ${project.artifact.selectedVersion.majorVersion}は解決されないため、

projectBuildingResult.getProject().getDependencies().get(1).getVersion()

「2」ではなく「${project.artifact.selectedVersion.majorVersion}」を返します。

何故ですか?これを解決するにはどうすればよいですか?

4

0 に答える 0