Gradle kotlin dsl与jfrog artifactory插件-禁用发布构建信息

sdnqo3pr  于 2023-01-17  发布在  Kotlin
关注(0)|答案(2)|浏览(149)

我正在尝试阻止Artifactory作业发布任何构建信息。根据JFrog docs,设置publishBuildInfo = false应该可以完成此操作。但是,如果我尝试在gradleKotlindsl中设置该属性,我会收到以下错误:
无法为类型为org.jfrog.gradle.plugin.artifactory.task.artifactoryTask的任务“:艺术工厂发布”设置未知属性“发布构建信息”。
下面是我们的build.gradle.kts文件,我用...替换了所有不相关的内容:

...

plugins {
    ...
    id("com.jfrog.artifactory") version "4.24.20"
    ...
}

...

artifactory {
    setContextUrl("someUrl")

    ...

    publish(delegateClosureOf<org.jfrog.gradle.plugin.artifactory.dsl.PublisherConfig> {

        repository(delegateClosureOf<groovy.lang.GroovyObject> {
            ...
        })

        defaults(delegateClosureOf<groovy.lang.GroovyObject> {
            invokeMethod("publications", "mavenJava")
            setProperty("publishPom", true)
            setProperty("publishArtifacts", true)
            setProperty("publishBuildInfo", false)
        })
    })
}
nvbavucw

nvbavucw1#

使用invokeMethod

configure<org.jfrog.gradle.plugin.artifactory.dsl.ArtifactoryPluginConvention> {
    publish {
        defaults {
            invokeMethod("setPublishBuildInfo", false)
        }
    }
}

我从被删除的答案中得到了这个。不知道为什么它被删除了,因为它起作用了,救了我的命:)

kqlmhetl

kqlmhetl2#

我还有一个问题。我一直在努力通过Gradle中的KotlinDSL关闭PublisherBuildInfo。上面提到的方法对我来说不太有效,所以我最终在artifactory块中使用了clientConfig.publisher.isPublishBuildInfo = false,它适用于id(“com.jfrog.artifactory”)版本“4.28.1”。
例如:

...
artifactory {
    setContextUrl("https://-our-artifactory-url")
    clientConfig.publisher.isPublishBuildInfo = false

    publish(
        delegateClosureOf<PublisherConfig> {
            repository(
                delegateClosureOf<GroovyObject> {
...

相关问题