Har*_*own 6 groovy closures gradle 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'
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想提取并重用 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'
}
}
Run Code Online (Sandbox Code Playgroud)
结果是
在 org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler 类型的存储库容器上找不到参数 [gradle-dev] 的方法 mavenRepository()。
我怎样才能实现这个目标?
假设您有一个单独的 repositories.gradle 文件并命名您的 Maven 存储库..
maven {
name 'myrepo'
url 'https://xxxx'
credentials {
username = System.getenv("xxx") ?: "${xxx}"
password = System.getenv("xxx") ?: "${xxx}"
}
}
maven { name 'anotherrepo' }
Run Code Online (Sandbox Code Playgroud)
然后在根项目级别您可以运行:
apply from: "$rootDir/gradle/repositories.gradle"
Run Code Online (Sandbox Code Playgroud)
这将使用所有存储库填充存储库。然后要在其他地方填充特定的一个,您可以使用:
repositories.add(rootProject.repositories.getByName('myrepo'))
Run Code Online (Sandbox Code Playgroud)
我在此博客页面上找到了答案: https: //themightyprogrammer.dev/snippet/reusing-gradle-repo 感谢 mightprogrammer!
| 归档时间: |
|
| 查看次数: |
1217 次 |
| 最近记录: |