You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Spring Boot Maven项目中如何阻止Maven下载Sources Jar包

解决Maven自动下载私有依赖Sources Jar包的问题

针对你的情况,Maven尝试下载不存在的AppMaker-2.0.5-sources.jar导致构建失败,这里有几个可行的解决办法,按场景推荐:

1. 全局禁用Sources包下载(适用于所有依赖)

如果你的项目不需要任何依赖的sources包,可以在pom.xml<properties>中添加全局配置,让Maven跳过所有sources的下载:

<properties>
    <maven.dependency.sources.skip>true</maven.dependency.sources.skip>
</properties>

这个配置会告诉Maven的依赖插件跳过sources包的获取,适用于不需要源码的场景。

2. 针对单个依赖排除Sources包(精准控制)

如果你只需要阻止AppMaker这个依赖的sources下载,其他依赖正常获取,可以在该依赖的配置中添加排除规则,明确排除classifier为sources的子依赖:

<dependency>
    <groupId>com.test.app.internal</groupId>
    <artifactId>AppMaker</artifactId>
    <version>2.0.5</version>
    <exclusions>
        <exclusion>
            <groupId>com.test.app.internal</groupId>
            <artifactId>AppMaker</artifactId>
            <classifier>sources</classifier>
        </exclusion>
    </exclusions>
</dependency>

这样Maven就不会尝试下载这个依赖的sources包了。

3. 调整插件配置(如果是插件触发的下载)

如果是maven-source-pluginmaven-javadoc-plugin这类插件在构建时触发了sources下载,可以针对性修改插件配置:

情况A:禁用maven-source-plugin的源码附加

如果你的项目配置了maven-source-pluginattach-sources目标(用于打包自身源码),它可能会尝试拉取依赖的sources。你可以直接禁用该插件的执行,或者排除特定依赖:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.2.1</version>
            <executions>
                <execution>
                    <id>attach-sources</id>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                    <configuration>
                        <!-- 排除AppMaker的源码处理 -->
                        <excludes>
                            <exclude>com/test/app/internal/**</exclude>
                        </excludes>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

情况B:调整maven-javadoc-plugin的配置

如果是生成javadoc时需要依赖的sources,你可以排除该依赖的javadoc生成:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.4.1</version>
    <configuration>
        <!-- 排除AppMaker包的javadoc生成 -->
        <excludePackageNames>com.test.app.internal:**</excludePackageNames>
    </configuration>
</plugin>

4. 临时命令行跳过(快速测试)

如果你只是临时需要构建项目,不想修改配置,可以在Maven命令中添加参数跳过sources下载:

mvn clean install -Dmaven.dependency.sources.skip=true

这些方法都能解决你的问题,根据你的项目需求选择最合适的即可。

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

火山引擎 最新活动