You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Maven仅部署额外元数据构件而排除Jar包?

解决方案:跳过默认Jar的部署,仅部署自定义元数据构件

你可以通过调整Maven构件的附加(attach)状态实现需求:将默认生成的Jar设置为不附加到构建生命周期,让install/deploy插件忽略它;同时确保build-helper生成的元数据构件保持附加状态,正常部署到Nexus。

具体配置步骤

  1. 配置maven-jar-plugin,禁止默认Jar被附加
    这个配置会让Maven正常生成Jar包(满足你打包进Docker的需求),但不会把它加入待部署的构件列表:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.3.0</version>
        <configuration>
            <!-- 不将默认Jar附加到构建,install/deploy时会自动忽略它 -->
            <attach>false</attach>
        </configuration>
    </plugin>
    
  2. 保留build-helper-maven-plugin的配置
    你原本用build-helper添加的元数据构件,默认会被自动附加到构建生命周期,无需额外修改。示例配置如下(可根据你的实际文件路径、类型调整):

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>3.4.0</version>
        <executions>
            <execution>
                <id>attach-metadata-artifacts</id>
                <phase>package</phase>
                <goals>
                    <goal>attach-artifact</goal>
                </goals>
                <configuration>
                    <artifacts>
                        <artifact>
                            <file>${project.build.directory}/metadata-a.json</file>
                            <type>json</type>
                            <classifier>meta-a</classifier>
                        </artifact>
                        <artifact>
                            <file>${project.build.directory}/metadata-b.yaml</file>
                            <type>yaml</type>
                            <classifier>meta-b</classifier>
                        </artifact>
                    </artifacts>
                </configuration>
            </execution>
        </executions>
    </plugin>
    

原理说明

Maven的install和deploy插件只会处理被附加到项目构件列表的文件。通过maven-jar-plugin的<attach>false</attach>,默认Jar不会进入这个列表,自然会被跳过;而build-helper添加的构件默认处于附加状态,会被正常部署到Nexus。同时,Jar包仍会在target目录生成,完全不影响你后续打包进Docker镜像的操作。

内容的提问来源于stack exchange,提问作者Vincent F

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 02:30:57