2016-10-10 36 views
2

我正在使用Gradle和Jenkins並希望將工件部署到Artifactory。不幸的是,當我在Jenkins中開始構建時,這種部署只能工作一次。Jenkins + Gradle + Artifacts:只部署一次工作

如果我刪除了Jenkins服務器上的工作空間和〜/ .gradle文件夾,則部署將再次運行。僅僅刪除工作空間是不夠的。

對我來說就像一個bug。我有任何未知的版本衝突。或者是我看不到的東西。謝謝你的幫助。

環境:

  • 詹金斯2.7.3
  • 搖籃3.1
  • Artifactory的4.13.0
  • 詹金斯Artifactory的插件2.7.2

搖籃構建腳本:(基於jfrog的例子)

buildscript { 
    repositories { 
    jcenter() 
    } 

    dependencies { 
    classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '4.4.5') 
    } 
} 

allprojects { 
    apply plugin: 'java' 
    apply plugin: 'maven-publish' 

    repositories { 
    jcenter() 
    } 

    group = 'org.jfrog.example.gradle' 
    version = '1.0.1-SNAPSHOT' 
    status = 'integration' 
} 

artifactory { 
    publish { 
    defaults { 
     publishConfigs('archives') 
    } 
    } 
} 

// Setting this property to true will make the artifactoryPublish task 
// skip this module (in our case, the root module): 
artifactoryPublish.skip = true 

詹金斯Artifactory的插件設置:

  • [X]搖籃-Artifactory的集成度
  • [X]捕獲和發佈建立信息
  • [X]發佈工件來artifactory的
  • [x]發佈Maven描述符
  • [x]使用Maven兼容模式

休息被禁用(未設置)。

登錄詹金斯(控制檯輸出),與更改的版本和改變的源代碼,第二次運行:

Jenkins Artifactory Plugin version: 2.7.2 
[Gradle] - Launching build. 
[CdExampleArtifactory] $ cmd.exe /C '""C:\Program Files (x86)\Jenkins\tools\gradle-3.1\bin\gradle.bat"' --init-script c:/temp/init-artifactory8368571638486556211gradle artifactoryPublish && exit %%ERRORLEVEL%%" 
:artifactoryPublish 
:api:artifactoryPublish 
:services:artifactoryPublish 
:shared:artifactoryPublish 
:services:webservice:artifactoryPublish 

BUILD SUCCESSFUL 

Total time: 2.422 secs 
Build step 'Invoke Gradle script' changed build result to SUCCESS 
Finished: SUCCESS 

它看起來像任務不啓動構建(JAR等)過程。

+0

你在你的jenkins工作的某處運行'gradle build'嗎? – RaGe

+0

是的,構建作爲任務運行。如果我刪除了〜/ .gradle,那麼如果我將它設置爲任務,那麼生成將被調用。在第二次運行時,無論構建是否配置,artifactoryPublish都不做任何事情。 – Reinhard

回答

0

我找到了我的問題的解決方案。

我必須停用jenkins服務器上的gradle deamon(通過GRADLE_OPTS)。

3

使用最新的Gradle Artifactory插件4.4.7版解決了與Gradle 3.1的兼容性問題。

搖籃打造片段:

buildscript { 
    repositories { 
    jcenter() 
    } 

    dependencies { 
    classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '4.4.7') 
    } 
} 

注意版本。