我有maven-assembly-plugin配置为构建2个zip工件:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<skipAssembly>true</skipAssembly>
</configuration>
<executions>
<execution>
<id>game-zip</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<skipAssembly>false</skipAssembly>
<descriptors>
<descriptor>${basedir}/assembly/game-zip.xml</descriptor>
</descriptors>
<finalName>game-</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</execution>
<execution>
<id>lib-zip</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<skipAssembly>false</skipAssembly>
<descriptors>
<descriptor>${basedir}/assembly/lib-zip.xml</descriptor>
</descriptors>
<finalName>lib-</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</execution>
</executions>
</plugin>
我使用以下方式运行:清洁包装配件:单个
此配置运行良好,但需要3个显式标记 skipAssembly 。根目录中的那个应该是 true ,因为如果不是 - 构建将失败(但是,在预期的工作完成之后)。
经度:
[INFO] --- maven-assembly-plugin:2.2-beta-5:single (game-zip) @ gdxg-art ---
[INFO] Reading assembly descriptor: D:\idea\gdxg5/assembly/game-zip.xml
[INFO] Building zip: D:\idea\gdxg5\target\game-.zip
[INFO]
[INFO] --- maven-assembly-plugin:2.2-beta-5:single (lib-zip) @ gdxg-art ---
[INFO] Reading assembly descriptor: D:\idea\gdxg5/assembly/lib-zip.xml
[INFO] Building zip: D:\idea\gdxg5\target\lib-.zip
[INFO]
[INFO] --- maven-assembly-plugin:2.2-beta-5:single (default-cli) @ gdxg-art
上一次maven-assembly-plugin调用失败,并且:无法执行目标org.apache.maven.plugins:maven-assembly-plugin:2.2-beta-5:单个(default-cli)项目gdxg- art:读取程序集时出错:找不到程序集描述符。
问题:有没有办法避免显式skipAssembly = true / false设置?因为它看起来像一些开销。
答案 0 :(得分:1)
此问题是由于您使用clean package assembly:single
运行maven的事实。您的maven-assembly-plugin
已配置为在maven生命周期的assembly:single
阶段运行任务package
。
您正在调用的任务中出现 small 错误会导致构建周期中出现这种混乱。
您不需要运行clean package assembly:single
而只使用clean package
,而不需要您设置的三个skipAssembly。
我在maven-assembly-plugin
JIRA上创建了一个错误提示,因为我认为这种行为不正常(即使我们使用的是clean package
而不是clean package assembly:single
):{ {3}}