0

Jenkins、Maven、Tycho に少し奇妙な問題があり、誰が犯人かを突き止めるのは難しいです。

SCM でトリガーされたビルドはすべて失敗しますが、手動でトリガーされたビルドはすべて成功します。

ジェンキンス版:ジェンキンス版。1.527
Maven バージョン: 3.05

モジュール化された tycho ビルドがあります。

<modules>
    <module>../main.plugin.test</module>
    <module>../main.plugin.internationalization.at</module>
    <module>../crud.plugin</module>
    <module>../rest.plugin</module>
    <module>../main.plugin</module>
    <module>../main.feature</module>
    <module>../product</module>
    <module>../target-definition</module>
    <module>../rest.plugin.test</module>
</modules>

Jenkins は、モジュールを使用した単純な Maven ビルドとして構成されます。

実行するだけです:

-X clean deploy

SCM ビルドがトリガーされると、一部のモジュールがビルドされません。

ここに画像の説明を入力

手動でビルドすると、すべて問題ありません。

ここに画像の説明を入力

この動作は一貫しています。私はすでに試しました

  • 別の Maven バージョン (3.05 / 3.04) への切り替え
  • ビルド前にワークスペース全体を削除する
  • すべてのソースのクリーン チェックアウト
  • 実行中-X deploy(クリーンなし)

手動呼び出しは、何度でも成功します。そして、scm トリガーはいくらでも失敗します。

両方の Maven ログは、(動作するまで) まったく同じように見えます。

[INFO] Reactor Build Order:
[INFO] 
[INFO] client-master
[INFO] crud-plugin
[INFO] main-plugin
[INFO] ------------.main.plugin.test
[INFO] ------------.main.plugin.internationalization.at
[INFO] rest-plugin
[INFO] main-plugin
[INFO] ------------.product
[INFO] target-definition
[INFO] ------------.rest.plugin.test

そして(失敗):

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] main-plugin
[INFO] ------------.plugin.test
[INFO] ------------.main.plugin.internationalization.at
[INFO] rest-plugin
[INFO] main-plugin
[INFO] ------------.product
[INFO] ------------.rest.plugin.test

したがって、最終的なエラー メッセージは次のようになります。

Caused by: java.lang.IllegalStateException: ------------..client:------------..crud.plugin:eclipse-plugin:1.0.0-SNAPSHOT does not provide an artifact with classifier 'null'

顧客固有のモジュール名は ------------ に置き換えられます。この質問で。

4

1 に答える 1

2

Jenkins での Tycho ビルドに関するあいまいな問題について、繰り返し聞いたことがあります。これらの問題の理由は、これらのビルドをトリガーする一部の Jenkins プラグインが Maven ライフサイクルにフックし、これが Maven 内部で Tycho が行うことと何らかの形で衝突するためと思われます。

あなたが説明している問題については、使用している Jenkins プラグインがモジュールのビルド順序を変更しているようです。これは、通常の Maven ビルド (すべての依存関係が POM で宣言されている) では問題ないかもしれませんが、依存関係がビルド中に Tycho によって計算される Maven/Tycho ビルドでは失敗する可能性があります。

この問題を回避するには、通常のコマンド ライン ビルドに近い方法で Maven ビルドをトリガーする必要があります。Maven Integration プラグインからInvoke top-level Maven targetsビルド ステップが問題なく動作することがわかりました。

于 2013-08-15T08:00:46.303 に答える