将工件从gradle项目发布到bintray(maven存储库)

将工件从gradle项目发布到bintray(maven存储库),gradle,release,publish,pom.xml,bintray,Gradle,Release,Publish,Pom.xml,Bintray,我已经将Gradle配置为使用发布项目工件,不幸的是,这个插件在生成的pom.xml中存在依赖性问题-依赖性的作用域是runtime,而不是compile 我的配置如下: apply plugin: 'maven-publish' publishing { publications { mavenCustom(MavenPublication) { from components.java } } reposito

我已经将Gradle配置为使用发布项目工件,不幸的是,这个插件在生成的
pom.xml
中存在依赖性问题-依赖性的作用域是
runtime
,而不是
compile

我的配置如下:

apply plugin: 'maven-publish'

publishing {
    publications {
        mavenCustom(MavenPublication) {
            from components.java
        }
    }
    repositories {
        maven {
            url "https://api.bintray.com/maven/codearte/public/fairyland"
            credentials {
                username = bintrayUser
                password = bintrayKey
            }
        }
    }
}
发布很简单,只需一个命令:

gradle publish

如何以旧的(工作)方式实现这一点?当项目发布时,是否可以自动进行项目标记?

所有POM依赖项都具有
运行时
范围这一事实是新的酝酿中的
maven publish
插件的已知限制。在修复之前,您可以使用
publication.pom.withXml
钩子自己修复它,或者返回到
maven
插件。这两个插件都记录在中

标记是一个完全不同的问题。您可以使用第三方Gradle SCM插件之一,也可以调用命令行工具(例如,使用
Exec
任务)。

好的,我找到了:

apply plugin: 'maven'

uploadArchives {
    repositories {
        mavenDeployer {
            name = 'Codearte Public Repository'
            repository(id: 'codearte-repository', url: 'https://api.bintray.com/maven/codearte/public/fairyland'){
                authentication(userName: bintrayUser, password: bintrayKey)
        }
    }
}
使用以下命令上载:

gradle uploadArchives

我还建议你看一下这本书。它使发布到Bintray变得更加容易。在我看来,新的gradle
maven插件已经不是新的了,但问题仍然存在。这个“新的、酝酿中的”插件是否会完成?下面是我在这里发现的示例“withXml钩子”,它对meIs有效。发布中是否存在跟踪此限制的bug{publications{pom.withXml{asNode().dependencies.'''.findAll(){it.scope.text()='runtime'&&project.configurations.compile.allDependencies.find{dep->dep.name==it.artifactId.text()}。each(){it.scope.value='compile'}