我是Gradle和Artifactory的新手,希望能将一个JAR文件上传到Artifactory。
这是我的build.gradle
文件:
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'maven'
apply plugin: 'artifactory-publish'
groupId = 'myGroup'
version = '1.0'
def artifactId = projectDir.name
def versionNumber = version
artifactory {
contextUrl = 'http://path.to.artifactory' // base artifactory url
publish {
repository {
repoKey = 'libs-releases' // Artifactory repository key to publish to
username = 'publisher' // publisher user name
password = '********' // publisher password
maven = true
}
}
}
artifactoryPublish {
dependsOn jar
}
在运行artifactoryPublish
任务后,构建成功如下所示:> gradle artifactoryPublish --stacktrace
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar
:artifactoryPublish
Deploying build info to: http://path.to.artifactory/api/build
BUILD SUCCESSFUL
Total time: 7.387 secs
然而,除了构建信息之外,没有发送任何内容到Artifactory。
非常感谢任何帮助。
编辑:
正如JBaruch所提到的,我已经添加了以下内容:
apply plugin: 'maven-publish'
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
并将defaults部分设置为artifactory任务:
defaults {
publications ('mavenJava')
}
现在它可以工作了。
谢谢。
defaults
实际上应该放在artifactory.publish
内部,而不仅仅是根artifactory
任务中。 - Ryan WallsError:(x, 0) Could not find property 'java' on SoftwareComponentInternal set.
请问您能否提供完整的脚本? - Nimrod Dayanapply plugin: 'maven'
,pom文件就会生成;如果有apply plugin: 'maven-publish'
,jar文件就会发布。我不需要publishing.publications.mavenJava(MavenPublication) { from components.java }
。但是你需要使用default { publications ('mavenJava'); publishConfigs('archives', 'published') }
。 - ravikanth