2016-08-23 38 views
1

我想用gradle + artifactory插件+ maven-publish插件将jar + pom文件部署到artifactory。Gradle artifactoryPublish不会部署.jar文件,由spring引导生成

我试着从像this其它来源的多种解决方案,我认为春天启动插件是打破东西(因为它编辑的jar文件)

下面的脚本成功地上传一个文件.pom,但不由spring-boot生成的.jar文件。我怎样才能让它也上传呢?

这是我的build.gradle:

buildscript { 
    ext { 
     springBootVersion = '1.4.0.RELEASE' 
    } 
    repositories { 
     mavenCentral() 
     jcenter() 
    } 
    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 
     classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.4.0" 
    } 
} 
apply plugin: 'java' 
apply plugin: 'spring-boot' 
apply plugin: "com.jfrog.artifactory" 
apply plugin: 'maven-publish' 
apply from: "gradle/artifactory.gradle" 

publishing { 
    publications { 
     mavenJava(MavenPublication) { 
      components.java 
     } 
    } 
} 

jar { 
    baseName = 'BatchParser' 

} 

version = '1.0' 
sourceCompatibility = 1.8 
targetCompatibility = 1.8 

repositories { 
    mavenCentral() 
} 


dependencies { 

    compile('org.projectlombok:lombok:1.16.10') 
    ... 
    testCompile('org.springframework.boot:spring-boot-starter-test') 
} 

和artifactory.gradle的

artifactory { 
    contextUrl = 'url' 
    publish { 
     repository { 
      repoKey = 'libs-release-local' 
      username = 'user' 
      password = 'password' 
     } 
     defaults { 
      publications("mavenJava") 
     } 
    } 
} 

输出:

gradlew clean build artifactoryPublish 


[buildinfo] Not using buildInfo properties file for this build.     
:clean      
:compileJava                             
:processResources 
:classes 
:findMainClass 
:jar 
:bootRepackage                           
:assemble 
:compileTestJava                 
:processTestResources UP-TO-DATE 
:testClasses 
:test               
:check 
:build 
:generatePomFileForMavenJavaPublication     
:artifactoryPublish 
Deploying artifact: http://url/libs-release-local/BatchParser/1.0/BatchParser-1.0.pom 
Deploying build descriptor to: http://url/api/build 
Build successfully deployed. Browse it in Artifactory under http://url/webapp/builds/BatchParser/1471949957594 
+0

您要求Gradle运行哪些任务以及尝试发布时实际运行哪些任务? –

+0

我已经添加了命令+输出 –

回答

3

有你publishing块一个非常微妙的错误。 from缺失,导致Gradle默默不在发布中包含jar文件。你需要使它看起来像这样更新您的publishing块:

publications { 
    mavenJava(MavenPublication) { 
     from components.java 
    } 
} 

如果我是你,我会打开一个摇篮可用性错误这一点。默默无所事事不是非常人性化。

+0

哦,这真的是不友好的。感谢您注意到我的错误! –

+0

有趣。在springboot添加内容之前,我会看到该jar的发布。建议使用uploadArchives + mavenDeployer。你有这些一起工作吗? –

+0

我们打破了构建和artifactoryPublish发布到我们jenkins文件中的两个单独的gradle调用。这导致重新制作没有弹簧靴的罐子。一个调用与构建... artifactoryPublish,并没有问题 –