您好我正在尝试在我的父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程序集时,有没有人知道是谁让这个工作?
提前致谢。
答案 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不在同一目录中,则应指定路径