当前位置: 首页 > 知识库问答 >
问题:

maven-force-plugin:不触发默认程序集描述符的搜索

松俊美
2023-03-14

我将maven assembly插件配置为构建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>

我使用:cleanpackageassembly:single运行它
此配置运行良好,但它需要3个明确的标签。根目录中的那个应该是真的,因为如果不是,构建将失败(但是,在预期的工作完成之后)
日志:

[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程序集插件调用失败:未能执行目标组织。阿帕奇。专家插件:maven程序集插件:2.2-beta-5:single(默认cli)on project gdxg art:读取程序集时出错:未找到程序集描述符。

问题:有没有办法避免显式的skipAssembly=true/false设置?因为它看起来像一些开销。

共有1个答案

窦成荫
2023-03-14

这个问题是由于您使用cleanpackageassembly:single运行maven造成的。您的maven assembly插件已配置为在maven生命周期的阶段运行任务assembly:single

您调用的任务中的这个小错误导致了构建周期中的混乱。

不要运行cleanpackageassembly:single并只使用cleanpackage,您将不需要设置的三个skipAssembly。

我在maven assembly插件JIRA上创建了一个错误通知单,因为我认为这种行为不正常(即使用户希望我们使用clean package而不是clean package assembly:single):https://issues.apache.org/jira/browse/MASSEMBLY-763

 类似资料:
  • 我使用maven汇编插件来压缩我的web应用程序dist文件夹。我使用这个文件: 我在父pom中使用它作为依赖项,如下所示: 根据使用此父pom的子级,我想告诉您maven assembly插件必须在哪个目录中使用assembly描述符。我用

  • Jdk:JAVA 11 无法执行目标组织。阿帕奇。专家插件:maven插件插件:3.2:项目构建工具上的描述符(默认描述符):目标组织的执行默认描述符。阿帕奇。专家插件:maven插件插件:3.2:描述符失败:索引22273超出长度88的界限-

  • 我正在尝试使用GraalVM原生映像来编译一个Spring Boot项目来构建一个. exe文件。 我的pom。xml: 当我使用mvn软件包时,出现了错误: 我试着改变maven的配置,试着使用不同的镜像下载插件,试着使用不同版本的插件。无论我如何操作,它都会不断报告错误。 我的环境: os: windows10 jdk:graalvm-ce-java11-windows-amd64-21.2.

  • 问题内容: 我刚刚在新的ubuntu系统上安装了maven,其中包括maven-compiler- plugin。我有一个以前可以正常构建的Java项目,默认为javac源,目标为5(jdk 1.5)。但是,该项目现在正在尝试在新系统上使用jdk1.3进行编译。有没有一种简单的方法可以将系统配置为使用> = jdk5? 以下是系统的一些配置详细信息: 我已经检查了maven-compiler-pl

  • 我的定义如下: 我的存储库中有两个文件: http://repo.example.com/repo/myorg/mymodule/1.0-SNAPSHOT/mymodule-1.0.0-ivy.xml http://repo.example.com/repo/myorg/mymodule/1.0-SNAPSHOT/mymodule-1.0.0.jar 当我下定决心时,艾薇似乎找不到我的描述。我试着

  • 我有一个Maven项目,并将其上传到SubVersion。对于持续集成,我们使用团队城市。我确实在团队城市中配置了一个构建,并尝试通过团队城市运行我的项目。当我运行构建时,我收到以下错误。请提供建议。 [com.testing:MavenTestUC]无法解析org.apache.maven.plugins的插件描述符:maven-clean-plugin:2 . 4 . 1(C:\ Users