【问题标题】:Override maven-assembly-plugin output file name覆盖 maven-assembly-plugin 输出文件名
【发布时间】:2016-02-13 21:13:54
【问题描述】:

是否可以覆盖运行assembly:single 目标创建的 jar 文件的默认名称?我想添加一个具有非标准名称的依赖项的 jar。我使用的是 2.6 版的插件。

【问题讨论】:

    标签: maven maven-assembly-plugin


    【解决方案1】:

    执行此操作的正确方法(如 on Maven JIRA tracker 所述)是设置 build.finalName 而不是使用只读的 finalName 插件属性。这是一个如何摆脱“jar-with-dependencies”和版本的示例,这对于创建一个稳定的名称和消除在 README 说明中使用的 2 个 JAR 的潜在混淆存在非常有用:

      <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.3.0</version>
            <executions>
              <execution>
    ...
                <configuration>
                  <appendAssemblyId>false</appendAssemblyId>
    ...
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
    </build>
    

    【讨论】:

      【解决方案2】:

      是的,您需要使用finalName 配置属性。请注意,您可能还希望借助 appendAssemblyId 属性删除默认附加到最终名称的程序集 ID。

      示例配置:

      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          ...
          <finalName>myFinalName</finalName>
          <appendAssemblyId>false</appendAssemblyId>
        </configuration>
      </plugin>
      

      【讨论】:

      • 致@jason:没有“finalname”字段,但它有效...我不知道其中的魔力...
      • single 目标中确实有一个finalName 参数。它不是在文档中生成的,它被声明为“只读”:参见source code。所以通常不能在配置中设置它,但它是 Maven 3 中的副作用(或错误)。请参阅MNG-5001MJAR-264
      猜你喜欢
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-05
      • 1970-01-01
      • 1970-01-01
      • 2012-03-25
      • 1970-01-01
      相关资源
      最近更新 更多