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

为什么gradle不使用我指定的maven settings.xml?

狄鸿禧
2023-03-14

我的mavensettings.xml如下,如你所见,没有超文本传输协议repository url,所有repository url都是以https开头的。

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <mirrors>
        <mirror>
            <id>mirror</id>
            <mirrorOf>central,jcenter,!rdc-releases,!rdc-snapshots</mirrorOf>
            <name>mirror</name>
            <url>https://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>

    </mirrors>
    <servers>
        <server>
            <id>rdc-releases</id>
            <username>myUserName</username>
            <password>myPwd</password>
        </server>
        <server>
            <id>rdc-snapshots</id>
            <username>myUserName</username>
            <password>myPwd</password>
        </server>
    </servers>
    <profiles>
        <profile>
            <id>rdc</id>
            <properties>
                <altReleaseDeploymentRepository>
                    rdc-releases::default::https://packages.aliyun.com/maven/repository/2012878-release-sX3W6A/
                </altReleaseDeploymentRepository>
                <altSnapshotDeploymentRepository>
                    rdc-snapshots::default::https://packages.aliyun.com/maven/repository/2012878-snapshot-wXHWRP/
                </altSnapshotDeploymentRepository>
            </properties>
            <pluginRepositories>
                <pluginRepository>
                    <id>central</id>
                    <url>https://maven.aliyun.com/nexus/content/groups/public</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginRepository>
                <pluginRepository>
                    <id>snapshots</id>
                    <url>https://maven.aliyun.com/nexus/content/groups/public</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
                <pluginRepository>
                    <id>rdc-releases</id>
                    <url>https://packages.aliyun.com/maven/repository/2012878-release-sX3W6A/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginRepository>
                <pluginRepository>
                    <id>rdc-snapshots</id>
                    <url>https://packages.aliyun.com/maven/repository/2012878-snapshot-wXHWRP/</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>rdc</activeProfile>
    </activeProfiles>
</settings>

当我执行 gradle 构建时,它说我使用不安全的协议。事实上,我从来没有在我的专家设置中使用过http协议.xml。我们可以看到所有存储库 URL 都以“https://”开头。任何人都可以给我一些建议吗?

## Exception is 
> Task :buildSrc:compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':buildSrc:compileJava'.
> Could not resolve all dependencies for configuration ':buildSrc:compileClasspath'.
   > Using insecure protocols with repositories, without explicit opt-in, is unsupported. Switch Maven repository 'maven(http://maven.aliyun.com/nexus/content/groups/public)' to redirect to a secure protocol (like HTTPS) or allow insecure protocols. See https://docs.gradle.org/7.4/dsl/org.gradle.api.artifacts.repositories.UrlArtifactRepository.html#org.gradle.api.artifacts.repositories.UrlArtifactRepository:allowInsecureProtocol for more details. 


我的gradle版本是7.4部分build.gradle如下,是多模块项目,我以一个模块gradle设置为例。

settings.gradle

/*
 * This file was generated by the Gradle 'init' task.
 */

rootProject.name = 'clougence-schema-parent'

include(':clougence-utils')

建筑模块clougence-utils的等级

/*
 * This file was generated by the Gradle 'init' task.
 */

plugins {
    id 'com.clougence.java-conventions'
}

description = 'clougence-utils'

groovy脚本

/*
 * This file was generated by the Gradle 'init' task.
 */

plugins {
    id 'java-library'
    id 'maven-publish'
}

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    compileOnly 'org.slf4j:slf4j-api:1.7.30'
    compileOnly 'org.projectlombok:lombok:1.18.20'

    annotationProcessor 'org.projectlombok:lombok:1.18.20'
    testAnnotationProcessor 'org.projectlombok:lombok:1.18.20'

    testCompileOnly 'org.projectlombok:lombok:1.18.20'

    testImplementation 'com.alibaba:druid:1.2.6'
    testImplementation 'junit:junit:4.12'
    testImplementation 'net.hasor:hasor-db:4.3.0'
    testImplementation 'com.alibaba:druid:1.2.6'
}

group = 'com.clougence'
version = '1.0.12-SNAPSHOT'
java.sourceCompatibility = JavaVersion.VERSION_1_8

publishing {
    publications {
        maven(MavenPublication) {
            from(components.java)
        }
    }
}

共有1个答案

养俊驰
2023-03-14

我自己找到了答案。我曾经配置过~/.gradle/init.gradle并设置一个HTTP网址,迫使格雷德使用那个不安全的存储库

 类似资料:
  • Gradle是一个优秀的构建系统和构建工具,它允许通过插件创建自定义的构建逻辑。 我们基于Gradle以下的一些特点而选择了它: 采用了Domain Specific Language(DSL语言)来描述和控制构建逻辑。 构建文件基于Groovy,并且允许通过混合声明DSL元素和使用代码来控制DSL元素以控制自定义的构建逻辑。 支持Maven或者Ivy的依赖管理。 非常灵活。允许使用最好的实现,但

  • Gradle 是一个能通过插件形式自定义构建逻辑的优秀构建工具。 以下的一些特性让我们选择了 Gradle: 使用领域专用语言(DSL)来描述和控制构建逻辑 构建文件基于 Groovy,并允许通过 DSL 来声明元素、使用代码操作 DSL 元素这样的混合方式来自定义构建逻辑 内置了 Maven 和 Ivy 来进行依赖管理 相当灵活。允许使用最好的实现,但是不会强制实现的形式 插件可以提供它们的 D

  • 问题内容: 基本上,我已经在正常的完整查询中创建了一个数据库,这是我使用的代码以及生成的响应。 生成的查询如下: 这是合乎逻辑的,因为我正在从表中提取所有内容。但是,当我尝试使用load_only专门选择一列时,在这种情况下为email列。我使用的代码是: 这两个命令给我相同的结果: 这非常奇怪,因为我应该在查询中仅获得一列。但是,当我使用此: 它神奇地为我返回了仅一列。我需要使用load_onl

  • 我是react native的新手,我正在尝试使用android Studio开始我的第一个项目。我遵循react native的“设置开发环境”中的说明,最终使用 然后我在android studio中打开了我的项目来启动AVD,但是gradle抛出了以下错误 错误:评估脚本时出现问题。 无法运行程序“node”(在目录“/home/deadshot/documents/playground/a

  • 这是我的束缚 错误在于 /Users/X/AndroidStudioProjects/Corotuines/app/build/generated/source/kapt/debug/com/example/corotuines/application/ApplicationMain_HiltComponents.java:126:错误:[Dagger/Mis的绑定]com.example.cor

  • 问题内容: 这个来自json.Unmarshal docs的示例(为便于使用而不是进行了稍微修改)有效,没有错误: 工作示例的游乐场链接 但是这个经过稍微修改的示例却没有: 非工作示例的游乐场链接 它显示了这个实际上并没有帮助的模糊错误(看起来更像是一个函数调用,而不是错误的IMO): json:Unmarshal(nil * main.Animal) 这似乎是因为它是未初始化的指针。但是文档说(