Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用kotlinscript DSL(build.gradle.kts)通过url添加maven存储库_Gradle_Kotlin_Gradle Kotlin Dsl - Fatal编程技术网

如何使用kotlinscript DSL(build.gradle.kts)通过url添加maven存储库

如何使用kotlinscript DSL(build.gradle.kts)通过url添加maven存储库,gradle,kotlin,gradle-kotlin-dsl,Gradle,Kotlin,Gradle Kotlin Dsl,在build.gradle.kts版本中,以下来自build.gradle的代码片段的等价物是什么 repositories { mavenCentral() maven { url '<MAVEN REPO URL>' } } 存储库{ mavenCentral() 马文{ url“” } } 在2018-01-13,正确的语法如下(函数setUrl,而不是url): 存储库{ mavenCentral() 马文{ setUrl(“”) } } 作为其他答案的

build.gradle.kts
版本中,以下来自
build.gradle
的代码片段的等价物是什么

repositories {
  mavenCentral()
  maven {
    url '<MAVEN REPO URL>'
  }
}
存储库{
mavenCentral()
马文{
url“”
}
}

在2018-01-13,正确的语法如下(函数
setUrl
,而不是
url
):

存储库{
mavenCentral()
马文{
setUrl(“”)
}
}

作为其他答案的补充,在快捷方式中,将方法添加到各种存储库方法中,以执行以下操作:

存储库{
mavenCentral()
maven(url=”“)
}
根据问题,这是在Kotlin DSL版本
0.11.1
中添加的。
0.11.x
版本包含在本手册中

要在使用run
/gradlew--version
时查看与构建一起运行的Gradle版本,可以在Groovy和Kotlin DSL之间切换示例。目前,您的问题的答案如下:

repositories {
    mavenCentral()
    maven {
        url = uri("<MAVEN REPO URL>")
    }
}
存储库{
mavenCentral()
马文{
url=uri(“”)
}
}
我需要添加带有身份验证的Gitlab,它具有更复杂的语法。对于其他偶然发现这一点的人,下面是官方的Gitlab示例,它被翻译成kts/Kotlin语法

val gitLabPrivateToken: String by project

maven {
    url = uri("https://<gitlab-url>/api/v4/groups/<group>/-/packages/maven")
    name = "GitLab"
    credentials(HttpHeaderCredentials::class) {
        name = "Private-Token"
        value = gitLabPrivateToken
    }
    authentication {
        create<HttpHeaderAuthentication>("header")
    }
}
val gitLabPrivateToken:项目字符串
马文{
url=uri(“https:///api/v4/groups//-/packages/maven")
name=“GitLab”
凭证(HttpHeaderCredentials::类){
name=“专用令牌”
值=gitLabPrivateToken
}
认证{
创建(“标题”)
}
}
这里的示例URL适用于Gitlab doco。但对我来说,它只适用于以下URL:
https://gitlab.com/api/v4/projects/12345/packages/maven

您可以按照官方要求通过以下方式添加自定义Maven URL:

存储库{
马文{
url=uri(“”)
}
}

我们谈论的是哪个版本?我使用的是Kotlin插件“1.2.10-release-IJ2017.3-1”和Kotlin版本“1.2.10”,您的语法产生了以下错误“提供的参数无法调用以下函数”-那么如何检查您的版本?我不知道在哪里可以查看或获取这个版本(针对Gradle的Kotlin DSL)。我也没有任何插件更新挂起。@FlorianReisinger我已经更新了一点我的答案。您在构建中使用的Kotlin版本或插件(例如使用
id“org.jetbrains.Kotlin.jvm”version“1.2.10”)
)与Gradle用于执行构建的Kotlin版本不同。刚刚选中,我有4.0 Gracie包装器:)我正在精确地查找Gitlab示例的翻译,但不知道如何为
HttpHeaderAuthentication
进行翻译。非常感谢你!谢谢这让我摆脱了从GitLab获取软件包的困境。URL问题是由一些GitLab奇怪之处(以及糟糕的文档)引起的。您只能发布到项目注册表URL,但可以读取组URL。因此,发布时始终需要使用项目注册表(如您指定的),但在父项目中,只指定一次组URL更容易。这正是我要找的
val gitLabPrivateToken: String by project

maven {
    url = uri("https://<gitlab-url>/api/v4/groups/<group>/-/packages/maven")
    name = "GitLab"
    credentials(HttpHeaderCredentials::class) {
        name = "Private-Token"
        value = gitLabPrivateToken
    }
    authentication {
        create<HttpHeaderAuthentication>("header")
    }
}
repositories {
    maven {
        url = uri("<your-custom-url>")
    }
}