Maven组装:组装

jav*_*y79 7 java maven-2 assemblies

您好我正在尝试在我的父pom中创建一个自定义描述符ref,它将所有依赖项与源包装在一起.我把assembly.xml很好地固定下来,但当我将它添加到我的基本POM程序集时:程序集失败如下:

[INFO] [assembly:assembly]
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error reading assemblies: No assembly descriptors found.

[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Error reading assemblies: No assembly descriptors found.
Run Code Online (Sandbox Code Playgroud)

但汇编:单身似乎工作正常.我已经尝试将jar-with-dependencies ref添加到POM中,但我不确定这是否可行.

这是我在我的基础pom中所拥有的:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2-beta-3</version>
    <dependencies>
        <dependency>
            <groupId>mycompany.jar.assembly</groupId>
            <artifactId>jar-with-dependencies-and-sources-test</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
            <configuration>
                <descriptors>
                    <descriptor>assembly.xml</descriptor>
                </descriptors>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

当我调用mvn程序集时,有没有人知道是谁让这个工作:从命令行汇编?

提前致谢.

sup*_*ark 7

我不确定,但我怀疑.您可以定义程序集:single作为程序包阶段的一部分,并在执行元素中标识其中的描述符.这可能意味着当您运行assembly:assembly时,插件不知道在哪里查找描述符.尝试将<configuration>元素复制到元素外部<executions>.

我的一个poms看起来像这样,我总是使用assembly:assembly:

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>2.1</version> 
  <configuration>
    <finalName>myJar</finalName>
    <descriptors>
      <descriptor>src/main/config/descriptor.xml</descriptor>
    </descriptors>
    <archive>
      <manifest>
        <mainClass>org.foo.Bar</mainClass>
      </manifest>
    </archive>
  </configuration>
</plugin> 
Run Code Online (Sandbox Code Playgroud)

注意src/main/config不是Maven标准路径,但我没有定义任何特殊处理.