9

現在Eclipse内で開発されている主要なC++プロジェクトを再利用する必要があります.CDT、mingw、およびcdtマネージドビルド機能を使用しています(外部メイクファイルやビルド環境はありません)。プロジェクト自体は、多くのサブプロジェクトで構成されています。

そのビルドを継続的インテグレーション サーバー (つまり jenkins) に統合したいので、ヘッドレス ビルドを自動化できるようにする必要があります。

これまでのところ、プロジェクトをチェックアウトし (jenkins から簡単に)、次のコマンドを使用して、Eclipse を使用してヘッドレス モードでビルドすることができました。

C:\prog\EclipseCdt\eclipse -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import %WORKSPACE%\project1 -import %WORKSPACE%\project2 -import %WORKSPACE%\project3 -build all

しかし、それだけでは十分ではありません:

  • ビルドは非同期です:前のコマンドが返されます(実際にはフォークします)が、結果が得られるまでコンテキストを保持することを期待しています(makeLinuxまたはdevenvWindowsの場合と同様)
  • ビルド ログを抽出できませんでした (ファイルに保存するのが理想的です): 継続的な情報を統合するには、ビルド ログを解析して興味深い情報を表示できるようにする必要があります (壊れたファイルについて考えてください)。
  • 理想的には、合格または不合格を示す直接のステータス (リターン コード) を Eclipse から取得したいと考えています。

この動作を行う方法はありますか?

ご了承ください:

  • 代替 (外部) ビルド システムを使用することは、現時点ではオプションではありません (cdt 管理ビルドを保持する必要があります。これには多くの複雑な履歴があります)。
  • 私はすでにスタックオーバーフローとグーグルを見てきましたが、私の必要性の明らかな単純さにもかかわらず、それを行う方法を見つけることができませんでした
  • 現在、Windows 7 / mingw 4.5.2 / Eclipse IDE for C/C++ Developers Version: Indigo Release Build id: 20110615-0604 を使用していますが、質問は x-platform だと思います
4

1 に答える 1

7

cmdからインタラクティブにeclipseを開始した場合はフォークしますが、batスクリプトから開始した場合はフォークしません。したがって、前の行をjenkinsに入れるだけで、うまくいきました。

ノート:

  • ワークベンチの場所を定義するためのパラメーターを追加する必要があり-dataます(毎回クリーンビルドします)
  • いつものように、ウィンドウを非難し、引用符を付けます...。
  • --launcher.suppressErrors:何かがうまくいかない場合に備えて、日食がポップアップを表示するのを防ぎます(実際には表示されないため、ビルドがブロックされます)

最後の(動作中!)コマンド:

C:\prog\EclipseCdt\eclipse --launcher.suppressErrors -nosplash -data "%WORKSPACE%" -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import "%WORKSPACE%\project1" -import "%WORKSPACE%\project2" -import "%WORKSPACE%\project3" -build all 

編集

  • --launcher.suppressErrorsを追加しました
于 2012-06-22T08:12:45.043 に答える