gradle - 在 build.gradle 中如何提取和重用 Maven 存储库配置?

标签 gradle groovy closures build.gradle

我有这个 build.gradle文件:

repositories {
    maven {
        credentials {
            username "$artifactory_user"
            password "$artifactory_password"
        }
        url 'http://some.domain/artifactory/repo'
    }
}

publishing {
    repositories {
        publications {
            maven(MavenPublication) {
                from components.java
            }
        }
        maven {
            credentials {
                username "$artifactory_user"
                password "$artifactory_password"
            }
            url 'http://some.domain/artifactory/repo'
        }
    }
}

我想提取并重用 Maven 存储库定义。

这不起作用:
repositories {
    mavenRepository()
}

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

private void mavenRepository() {
    maven {
        credentials {
            username "$artifactory_user"
            password "$artifactory_password"
        }
        url 'http://some.domain/artifactory/repo'
    }
}

它导致

Could not find method mavenRepository() for arguments [gradle-dev] on repository container of type org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.



我怎样才能实现这个目标?

最佳答案

假设你有一个单独的 repositories.gradle 文件并命名你的 maven repo ..

maven {
    name 'myrepo'
    url 'https://xxxx'
    credentials {
        username = System.getenv("xxx") ?: "${xxx}"
        password = System.getenv("xxx") ?: "${xxx}"
    }
}
maven { name 'anotherrepo' }
然后在根项目级别,您可以运行:
apply from: "$rootDir/gradle/repositories.gradle"
这将使用所有存储库填充存储库。然后使用填充一个特定的其他人,您可以使用:
repositories.add(rootProject.repositories.getByName('myrepo'))
我在这个博客页面上找到了答案:https://themightyprogrammer.dev/snippet/reusing-gradle-repo
感谢mayprogrammer!

关于gradle - 在 build.gradle 中如何提取和重用 Maven 存储库配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54330658/

相关文章:

gradle - 以编程方式为Jar任务添加依赖项

git - 在groovy中使用pretty=format执行git log不起作用

swift - 在闭包中访问单例 = 内存泄漏?

ios - 什么时候在 swift 中使用闭包?

swift - 在闭包中解构元组的元组

android - 由于分解了aapt文件,因此afollestad Material 对话库gradle同步失败

android - Gradle:.aar库未包含在编译器的输出中

java - Gradle + JavaFX-构建 'resources'目录的正确方法是什么?

hibernate - 使用GORM进行多次链式保存

java - Groovy:如何定义带参数的 java 可调用对象并使其可用于 groovy shell?