如何停止maven输出“[警告]配置选项'appendAssemblyId'设置为false。”?

gar*_*ryM 7 maven maven-assembly-plugin

我有一个生成 jar 的 Maven 项目,但没有附加 maven-assemble-plugin 的appendAssemblyId。

如何让 Maven 停止发出警告:“配置选项‘appendAssemblyId’设置为 false。” ?

编辑:我被要求包含 pom 文件,但我不允许这样做。我包括了导致错误的 maven- assembly-plugin 块。

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <configuration>
    <archive>
      <manifest>
        <mainClass>some.company.hello</mainClass>
      </manifest>
    </archive>
    <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
    <!-- prevent appending <descriptorRef> "jar-with-dependencies" to final jar name -->
    <appendAssemblyId>false</appendAssemblyId>
  </configuration>
  <executions>
    <execution>
      <!-- For inheritance merges -->
      <id>make-assembly</id>
      <!-- bind to the packaging phase -->
      <phase>package</phase> 
      <goals>
        <goal>single</goal>
      </goals>
    </execution>
  </executions>
</plugin>    
Run Code Online (Sandbox Code Playgroud)

écl*_*ant 1

这个答案解释了技术细节,但我认为关键是你在问题中提到的短语。

我有一个生成 jar 的 Maven 项目,但没有附加 maven-assemble-plugin 的appendAssemblyId。

如果我理解正确的话,我认为这意味着在你的 pom 文件中,你有一个条目说:

    <packaging>jar</packaging>
Run Code Online (Sandbox Code Playgroud)

这样做的作用是创建一个与 maven- assembly-plugin 的输出竞争的 jar 文件,并且 maven- assembly-plugin 胜出,从而导致只有一个 jar 文件。事实上,如果您设置appendAssemblyId回true,您将在输出目录中得到两个文件 -<artifact>.jar和<artifact>-jar-with-dependencies.jar。

因此,首先,您应该删除<packaging>我上面提到的标签,并将以下内容添加到<executions>您的 pom 文件的部分,这样就不会有两个冲突/竞争的 jar 文件(并且警告将会消失):

<execution>
    <id>default-jar</id>
    <phase>none</phase>
</execution>
Run Code Online (Sandbox Code Playgroud)