【问题标题】:Getting the filename of a jar-with-dependencies as a variable获取 jar-with-dependencies 的文件名作为变量
【发布时间】:2017-07-25 06:00:57
【问题描述】:

我正在使用maven-assembly-plugin 将我的 jar 文件与依赖项打包在一起,它可以正常工作并正确生成一个 jar 文件。这里的输出文件用finalName指定:

<plugin>
    <!--Many lines omitted-->
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.5.5</version>
    <configuration>
        <finalName>MyFinalJar-${project.version}</finalName>
    </configuration>
</plugin>

现在,我需要在另一个插件中访问这个finalName,它会打包jar 文件。我有 ${project.build.finalName} 变量,但它没有给我 jar-with-dependencies,它只是给了我我不想要的普通 jar。

如何在不重复自己的情况下访问这个最终的 jar 文件名?

【问题讨论】:

  • finalName 不是您可以用来在其他地方引用它的名称...描述符包含 &lt;id&gt;xxx&lt;/id&gt; 结果,您可以用来引用的名称是您的 &lt;artifactId&gt;aid&lt;/artifactId&gt; 加上 id作为分类器aid-VERSION-xxx 可以引用该工件。如果您在谈论jar-with-dependencies,那么您正在使用预定义的描述符..这意味着您需要使用artifact-VERSION-jar-with-dependencies...
  • @khmarbaise 我不确定你的意思

标签: java maven jar maven-assembly-plugin


【解决方案1】:

在你的 pom 文件顶部声明:

<properties>
  <finalproject.name>someprojectname</finalproject.name>
</properties>

然后在其他地方使用它:

${finalproject.name}

例如:

<configuration>
    <finalName>${finalproject.name}</finalName>
</configuration>

【讨论】:

  • 这确实有效,但我没想到我必须声明另一个变量。我希望访问 maven-assembly-plugin 的内部变量
  • @Miguel 如果不是它故意暴露出来的东西,你为什么认为你可以并且应该使用它?
猜你喜欢
  • 1970-01-01
  • 2012-01-31
  • 2013-05-21
  • 1970-01-01
  • 2020-08-02
  • 2010-11-23
  • 2011-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多