【问题标题】:Maven Default SeparatorMaven 默认分隔符
【发布时间】:2010-11-28 18:40:17
【问题描述】:

pom.xml中,如果我们试图编译并创建JAR,名称将被视为

<artifactId>-<version>.jar

是否有可以将默认分隔符“-”更改为其他内容的属性或设置?

我知道我们可以在创建 jar 后重命名它(或使用finalName)。我只是想知道是否有其他人尝试过这个并取得了成功。

提前非常感谢!

【问题讨论】:

    标签: java maven-2 jar


    【解决方案1】:

    我不知道更改分隔符的方法。但是您可以在 pom 上设置 finalName 元素,以便将 jar 输出到具有该名称的目标目录。例如:

    <build>
      ...
      <finalName>${project.artifactId}_${project.version}</finalName>
      <!--this is the default value
      <finalName>${artifactId}-${version}</finalName-->
      ...
    

    值得注意的是,无论您在 finalName 元素中设置什么,工件仍将使用默认名称安装/部署到存储库。

    正如Pascal 评论的那样,允许为已安装/部署的工件覆盖约定会导致依赖机制出现问题(它可能仍然有效,但会失去约定的好处),因此灵活性方面的任何好处都是超过 通过增加配置的详细程度和复杂性 - 这已经足够复杂了。

    【讨论】:

    • 感谢您的帮助。我想知道一种不使用 copy 或 finalName 的方法。
    • 你可以使用一个程序集来创建一个额外的 jar,但是你最终不得不在程序集配置中指定 finalName 元素。见maven.apache.org/plugins/maven-assembly-plugin/single-mojo.html
    • 工件仍以默认名称安装/部署到存储库是一件好事,否则会破坏依赖关系解析机制。 TBH,我没有看到改变这个约定的意义......
    • @RichSeller,@Pascal T:非常感谢!我现在明白为什么他们没有为此提供机制。:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多