Maven组装:组装

时间:2009-06-09 01:37:45

标签: 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.

但是汇编:单身似乎工作正常。我已经尝试将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>

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

提前致谢。

2 个答案:

答案 0 :(得分: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> 

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

答案 1 :(得分:0)

你在哪里有你的assembly.xml? Maven的工作目录是模块的目录(包含pom.xml的模块)。如果你的assembly.xml与此pom.xml不在同一目录中,则应指定路径