2016-06-27 10 views
3

私のチームは、高度に規制された環境にソフトウェアを構築しているため、ビルドツール自体についても完全な部品表が必要です。現在、Gradle 2.12を使用していますが、現在の問題を解決する場合はアップグレードできます。Gradleビルドスクリプト依存のBOMを生成する方法

私はGradle用BOMを生成しようとしています。すべてのbuildscript依存関係のリスト私たちが構築しているコードのために既に生成することができます。これは、Gradle自身が必要とする一連の依存関係です。現在、我々はbuildscriptの依存関係のリストを取得するには、次のタスクを使用している:



    task buildscriptDependencies(type: DependencyReportTask) { 
        configurations = [buildscript.configurations.classpath] 
    } 

しかし、これが唯一の私たちに直接依存関係ではなく、推移的なものを提供します。

究極のテストは、このBOMを使用して、ローカルのアーティファクトリポジトリ(問題の場合はArtifactory)を作成し、それに基づいて構築し、インターネットから完全に切り離すことです。私たちがインターネットなしで構築できなければ、監査に合格できません。

完全なビルドスクリプトBOMを生成する方法を知っている人はいますか?

編集:私は、この問題を元々思っていたよりも難しくしている何かを発見しました。依存関係のリストはBOMの一部であり、全体ではありません。

POMファイルには依存関係の一覧を表示できますが、親のリストも表示できます。 fooのバージョン209が親として「FOO-親」を宣言し

  • 場合は、あなたがfoo-親が必要になるだろう:私は、POMの両親の深い知識を持っていますが、私はこれまで見ることができることはありません

  • このような場合、fooは、クラスが互いに継承する方法と同様に、foo-parentから継承すると言われています。

依存関係ファイルを自動生成する標準の方法では、親をリストしません。したがって、私は完全なBOMを取得していません。私はBOMを使ってリポジトリをプリロードしているので、さまざまな依存関係が自分のママを見つけることができないため、私のビルドはすべて失敗しています。

+0

gradleの 'DependencyReportTask'はあなたが探しているものではありませんか? – Opal

+0

あるいは 'gradle dependencies --configuration compile'ですか? – Opal

+0

印刷物がどのような依存関係になっていますか?どのような依存関係にトランジションがないのが分かりますか? – Ethan

答えて

0

gradle 2.12では、組み込みタスクgradle buildEnvironmentを使用して、トランジッションを含むすべてのビルドスクリプトの依存関係のツリーを印刷できます。

関連する問題