如何从Maven的属性中获取分类器名称?

Jer*_*ano 7 maven

从Maven的属性中获取分类器名称并将其用作变量的最简单方法是pom.xml什么?

例如:

<properties>
   <final_jar>${project.build.finalName}-${classifier}.jar</final_jar>
</properties>
Run Code Online (Sandbox Code Playgroud)

官方文档中没有提及分类器属性.

看看maven-jar-plugin它的来源,它似乎是从一个被调用的属性中获取它,maven.jar.classifier但它似乎在插件之外不可用.有没有办法访问它?

Ger*_*ica 1

尽管在POM 参考、Maven 坐标classifier下提到过,但它必须在中声明。所以(你能想到的)它不是元素的一部分。maven-jar-plugin<project>Model

不幸的是,我也还没有找到一种方法来访问 的maven.jar.classifier 属性maven-jar-plugin,而是通过声明一个额外的<project>属性:

<project>
  ...
  <properties>
    <jar.classifier>CLASSIFIER</jar.classifier>
  </properties>
  ...
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <classifier>${jar.classifier}</classifier>
        </configuration>
      </plugin>
  ...
</project>
Run Code Online (Sandbox Code Playgroud)

Properties propertiesMavenModel's超类中有一个ModelBase. 但如果它不被插件使用......

而且还没有属性插值语法(还?),例如:

${project.build.plugins.plugin[<G>:<A>:<V>].<property>}
Run Code Online (Sandbox Code Playgroud)