2016-10-10 2 views
2

私はGradleとJenkinsを使用しており、Artifactoryにアーティファクトを展開したいと考えています。残念ながら、このデプロイメントはJenkinsでビルドを開始するときに一度しか動作しません。Jenkins + Gradle + Artifacts:一度だけ作業を展開する

Jenkinsサーバー上のワークスペースと〜/ .gradleフォルダを削除すると、デプロイメントは再び機能します。ワークスペースだけを削除するだけでは不十分です。

私のバグのようです。不明なバージョンの競合がありますか?それとも私は見えないものと違うのですか?助けてくれてありがとう。

環境:

  • ジェンキンス2.7.3
  • のGradle 3.1
  • Artifactory 4.13.0
  • ジェンキンスArtifactoryプラグイン2.7.2

のGradleスクリプトをビルドします。を( 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]のGradle-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 

それはビルドを開始していないタスク(瓶など)のように見えるプロセス。

+0

あなたのジェンキンの仕事のどこかで 'gradle build'を実行していますか? – RaGe

+0

はい、ビルドはタスクとして実行されます。もし私が〜/ .gradleを削除したら、それをタスクとして設定していればビルドが呼び出されます。 2回目の実行では、ビルドが設定されているかどうかに関係なく、artifactoryPublishは何もしません。 – Reinhard

答えて

0

私の問題の解決策が見つかりました。

(GRADLE_OPTSを介して)ジェンキンスサーバーでgradleデーモンを無効にする必要があります。

3

最新のGradle Artifactory Pluginバージョン4.4.7を使用すると、Gradle 3.1との互換性の問題が解決されます。

buildscript { 
    repositories { 
    jcenter() 
    } 

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

注バージョン:

のGradleは、スニペットを構築します。

関連する問題