Maven 读取程序集时出错:找不到程序集描述符

Maven Error reading assemblies: No assembly descriptors found

遵循 this Guide 我 运行 命令

mvn assembly:assembly

并获得

Build Failure
Error reading assemblies: No assembly descriptors found.

我已经查看了很多关于此的问题,但无济于事。

this post 开始,我创建了一个 .xml,里面有这个:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
    <id>jar-with-dependencies</id>
    <formats>
        <format>jar</format>
    </formats>
    <dependencySets>
        <dependencySet>
            <scope>runtime</scope>
            <unpack>true</unpack>
            <unpackOptions>
                <excludes>
                    <exclude>**/LICENSE*</exclude>
                    <exclude>**/README*</exclude>
                </excludes>
            </unpackOptions>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <directory>${project.build.outputDirectory}</directory>
            <outputDirectory>${project.build.outputDirectory}</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>src/main/resources/META-INF/services</directory>
            <outputDirectory>META-INF/services</outputDirectory>
        </fileSet>
    </fileSets>
</assembly>

并将其包含在 pom.xml 中:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2-beta-5</version>
    <configuration>
      <descriptors>
        <descriptor>jar-with-dependencies.xml</descriptor>
        </descriptors>
    </configuration>
  </plugin>

但还是没有运气。

我对此很陌生,你可能会说,我怎样才能得到这个 运行?

~~编辑~~

pom.xml我改了

<descriptor>jar-with-dependencies.xml</descriptor>

<descriptor>src/main/assembly/jar-with-dependencies.xml</descriptor>

~~编辑 2~~

pom.xml 现在包含这个:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2-beta-5</version>
    <executions>
        <execution>
        <id>make-assembly</id>
        <phase>package</phase>
        <goals>
            <goal>single</goal>
        </goals>
        <configuration>
        <descriptors>
            <descriptor>src/main/assembly/jar-with-dependencies.xml</descriptor>
        </descriptors>
        </configuration>
        </execution>
        </executions>
</plugin>

~~编辑 3~~

这个 pom.xml 现在对我有用:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2-beta-5</version>
    <configuration>
        <descriptors>
            <descriptor>src/main/assembly/jar-with-dependencies.xml</descriptor>
        </descriptors>
        </configuration>
    <executions>
        <execution>
        <id>make-assembly</id>
        <phase>package</phase>
        <goals>
            <goal>single</goal>
        </goals>
        </execution>
    </executions>
</plugin>

为此,您需要在 src/main/assembly/ 中创建文件 jar-with-dependencies.xml 和此 XML:

<descriptors>
    <descriptor>src/main/assembly/jar-with-dependencies.xml</descriptor>
</descriptors>

即您需要指定文件的路径,约定是将文件放入 src/main/assembly/.

要使用 Maven 提供的元素,您需要使用 descriptorRef 元素(包裹在 descriptorRefs 中)。

也不要将描述符放在 execution 元素内,否则 mvn assembly:assembly 将找不到它(因为您专门将它移到了 mvn package 目标)。

[编辑] 我自己遵循了教程,您可能错过了重要的一点:您需要 select 正确的原型。在我的例子中,那是 5 但顺序可以改变。所以阅读整个列表并寻找字符串 openimaj-quickstart-archetype 否则事情会崩溃。