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

如何在Gradle中配置无HTTPS的私有Nexus仓库以开发Java应用?

修复Gradle发布到Nexus及依赖拉取问题

一、解决发布项目的publishing()方法找不到问题

你的发布项目报错是因为缺少maven-publish插件,且使用了Gradle已废弃的mavenDeployer配置方式,按以下步骤修改:

1. 添加maven-publish插件

在plugins块中加入maven-publish插件:

plugins {
  id 'org.springframework.boot' version '2.7.5'
  id 'io.spring.dependency-management' version '1.0.14.RELEASE'
  id 'java'
  id 'maven-publish' // 新增这个插件
}

2. 重构发布配置(替换旧的mavenDeployer)

删除原来的publishing块,替换为Gradle 7.x支持的maven-publish配置:

publishing {
    publications {
        maven(MavenPublication) {
            // 从Java组件发布普通jar(而非Spring Boot可执行jar)
            from components.java

            // 构件坐标,可直接复用项目根配置,也可单独指定
            groupId = 'com.model'
            artifactId = 'm-entities'
            version = '0.0.1-SNAPSHOT'
        }
    }
    repositories {
        maven {
            url = uri("http://localhost:8081/repository/model-snapshot/")
            allowInsecureProtocol = true // 允许HTTP非加密访问
            credentials {
                username = 'user' // Nexus的上传权限账号
                password = '1'    // 对应密码
            }
        }
    }
}

3. 确保发布普通jar(关键)

Spring Boot项目默认生成可执行jar,这种jar无法被其他项目作为依赖引用,需配置生成普通jar:

// 禁用Spring Boot可执行jar任务(如果不需要的话)
tasks.named('bootJar') {
    enabled = false
}

// 确保普通jar任务启用
tasks.named('jar') {
    enabled = true
}

4. 执行发布命令

在项目根目录运行:

./gradlew publish

Windows系统使用gradlew publish

二、解决依赖拉取的401认证错误

出现401 Unauthorized错误,按以下排查修复:

1. 检查Nexus账号权限

登录Nexus后台,确认user账号拥有读取model-snapshot仓库的权限:

  • 进入Security -> Roles,找到账号关联的角色,确保包含nx-repository-view-maven2-model-snapshot-read权限,无权限则添加。

2. 核对账号密码

确认gradle.properties里的repoUser和repoPassword与Nexus后台账号密码完全一致,注意大小写、特殊字符。

3. 检查仓库匿名访问设置

如果model-snapshot仓库关闭了匿名访问,必须通过认证拉取依赖,你的现有配置已添加credentials块,只需确保账号有权限即可。

4. 验证依赖坐标

确认引用的依赖坐标和发布构件完全匹配:

implementation 'com.model:m-entities:0.0.1-SNAPSHOT'

需与发布时的groupId、artifactId、version一一对应。

三、验证流程

  1. 先成功发布构件,在Nexus后台model-snapshot仓库中能找到com/model/m-entities/0.0.1-SNAPSHOT目录及相关文件。
  2. 刷新引用项目的Gradle依赖,执行./gradlew build,确认无401错误,依赖拉取正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 10:05:24