在 Maven 中存储程序集文件的正确位置是什么?

What's the correct place to store assembly files in Maven?

在 Maven 的汇编指南 (https://maven.apache.org/guides/mini/guide-assemblies.html) 中,指出:

You'll notice that the assembly descriptor is located in ${project.basedir}/src/assembly which is the standard location for assembly descriptors.

但是在 Maven 程序集插件页面 (https://maven.apache.org/plugins/maven-assembly-plugin/examples/sharing-descriptors.html) 中它说:

Note: Your assembly descriptors must be in the directory /src/main/resources/assemblies to be available to the Assembly Plugin.

它们是两个不同的东西吗?它们中的任何一个已经过时了吗?

这是使用程序集和将它们提供给其他项目的区别。

将程序集描述符放入 src/main/resources/assemblies 的想法是让它们可用于其他模块或项目。您创建一个项目,比如说 my-assembly-descriptor,在 src/main/resources/assemblies 中有一个或多个程序集描述符。然后在您想要使用描述符的不同项目中配置程序集插件以使用 my-assembly-descriptor 作为依赖项。

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.6</version>
    <dependencies>
      <dependency>
        <groupId>your.group.id</groupId>
        <artifactId>my-assembly-descriptor</artifactId>
        <version>1.0-SNAPSHOT</version>
      </dependency>
    </dependencies>
    <executions>
      ...
    </executions>
  </plugin>

程序集插件在其类路径中找到您的描述符并可以使用它们。

src/assembly 中的程序集描述符可用于 assemble 个工件,但不能在其他模块或项目中重复使用。