Gradle:プロジェクトの依存関係に必要なリポジトリを追加する必要があるのはなぜですか?

シベル

2つのプロジェクトがMainありInfrastructure、どちらもGradleでビルドされているとし4.10.3ます。その依存関係でInfrastructure宣言SomeOtherDependencyします:

repositories {
    // jcenter is needed for "SomeOtherDependency"
    jcenter()
}


dependencies {
    // ...
    implementation 'com.othercompany.someotherdependency:8.2.16'
}

そして次に、その依存関係としてMain宣言Infrastructureします。

dependencies {
    // ...
    implementation 'com.myprojects.infrastructure:1.22.0'
    
}

Main これが物事の状態であるとき、構築に失敗しています:

java.lang.NoClassDefFoundError:io / gsonfire / GsonFireBuilder

ない限り、私は、jcenter()Mainの依存関係にも。そうすれば、すべてうまくいきます。しかし、これはGradleの依存関係が機能することになっている方法ではないと思いますか?

それGsonFireBuilderSomeOtherDependency依存するクラスであること知っていjcenter()ますが、消費しているプロジェクトのリポジトリに表示されない場合、なぜ到達できないのInfrastructureですか?

ところで:私は使用している場合、それは問題ではありませんcompile/ api/implementation宣言する際にSomeOtherDependency依存関係を。

私は確かにここにいくつかのことを誤解している:私は取り除くことができる方法Mainの依存関係を宣言する責任のその依存関係を、Infrastructure

ロバート

ここでは2つの概念を混ぜ合わせていると思います。依存関係は、必要なもう1つのパッケージ(「何」)です。リポジトリは、依存関係(「どこから」)を見つける場所です。依存関係が複数のリポジトリにある場合があります。

たとえば、ローカルリポジトリを実行して、これまでに使用したすべてのパッケージをキャッシュできます。リポジトリと依存関係が相互に関連付けられている場合は、すべての依存関係をアップグレードして、それらをキャッシュリポジトリにポイントする必要があります。実際、依存関係の依存関係でリポジトリが指定されている場合は、それらすべてを手動で調べて、キャッシュリポジトリを指す必要があります。これは、自動依存関係管理の目的をほぼ無効にします。したがって、リポジトリと依存関係を別々に指定します。

Gradleの依存関係管理に関する図を参照してください:ローカルパス、Gradleキャッシュ、クラウド内のリポジトリ---依存関係を毎回調整するのは面倒です。

これにより、依存関係が使用するリポジトリを指定する必要がなくなる可能性があります。あなただけ設定する必要があります任意のあなたの依存関係の必要な依存関係を持っているリポジトリを。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

プロジェクトで直接使用されていない場合でも、Nugetの依存関係を追加する必要があるのはなぜですか?

分類Dev

eslintは、devDependenciesではなく、プロジェクトの依存関係にリストする必要があります

分類Dev

Spring Bootプロジェクトの一部の依存関係のバージョンを指定する必要がないのはなぜですか?

分類Dev

LibVLCの依存関係をどのプロジェクトに追加する必要がありますか?

分類Dev

Androidプロジェクトのgradleビルドファイルに必要な依存関係を特定するにはどうすればよいですか?

分類Dev

新しいscalaプロジェクトにカスタムscalaライブラリの依存関係を追加する必要がありますか?

分類Dev

あるプロジェクトの依存関係が既存の依存関係に置き換えられるのはなぜですか

分類Dev

スタンドアロンアプリケーションにスクリプトエンジンを追加する必要があるのはなぜですか

分類Dev

IntellJ IDEAでSpring Bootプロジェクトを実行すると、依存関係がクラスパスに追加されないのはなぜですか?

分類Dev

Madleはプロジェクトをビルドするために追加の依存関係を必要としますが、Gradleは必要としません

分類Dev

なぜActionScriptプロジェクトにFlexライブラリを手動で追加する必要があるのですか?

分類Dev

Wikiを別のリポジトリに保存する必要があるのはなぜですか?

分類Dev

JBoss ASでデータソースを設定したら、Mavenプロジェクトの依存関係にJDBCDriverを追加する必要がありますか?

分類Dev

モジュラーTypescriptプロジェクトの依存関係を除外する必要がありますか?

分類Dev

Firebase / Crashスクリプトファイルを使用してプロジェクトを実行するために、プロジェクトをクリーンアップして再起動する必要があるのはなぜですか

分類Dev

MVP GWTプロジェクトでClientFactoryを使用する必要があるのはなぜですか?

分類Dev

ロックオブジェクトを静的にする必要があるのはなぜですか?

分類Dev

Gradle:対応するプロジェクトの依存関係が利用できない場合にのみDependencyManagerのライブラリを使用する

分類Dev

プロジェクトの依存関係を追加できないのはなぜですか?

分類Dev

なぜジェネリックコールを明示的にキャストする必要があるのですか?

分類Dev

CMakeがVisualStudioプロジェクトに不要なライブラリを追加するのはなぜですか?

分類Dev

ストアファイルをApp.jsエラーにインポートできません:「ストア」はプロジェクトの依存関係にリストされている必要があります

分類Dev

ヒープ内にオブジェクトを作成する必要があるのはなぜですか?

分類Dev

gradleのプロジェクト名はディレクトリである必要がありますか?

分類Dev

Androidプロジェクトの依存関係には、異なるバージョンのAndroidGradleプラグインが必要です

分類Dev

'dayjs'はプロジェクトの依存関係のlintエラーにリストされている必要があります

分類Dev

パブリックGitリポジトリのクローンを作成するためにマシンのsshキーが必要なのはなぜですか?

分類Dev

settings.xmlファイルでリポジトリを指定する必要があるのはなぜですか

分類Dev

依存関係でのみ使用されるマクロを使用する必要があるのはなぜですか

Related 関連記事

  1. 1

    プロジェクトで直接使用されていない場合でも、Nugetの依存関係を追加する必要があるのはなぜですか?

  2. 2

    eslintは、devDependenciesではなく、プロジェクトの依存関係にリストする必要があります

  3. 3

    Spring Bootプロジェクトの一部の依存関係のバージョンを指定する必要がないのはなぜですか?

  4. 4

    LibVLCの依存関係をどのプロジェクトに追加する必要がありますか?

  5. 5

    Androidプロジェクトのgradleビルドファイルに必要な依存関係を特定するにはどうすればよいですか?

  6. 6

    新しいscalaプロジェクトにカスタムscalaライブラリの依存関係を追加する必要がありますか?

  7. 7

    あるプロジェクトの依存関係が既存の依存関係に置き換えられるのはなぜですか

  8. 8

    スタンドアロンアプリケーションにスクリプトエンジンを追加する必要があるのはなぜですか

  9. 9

    IntellJ IDEAでSpring Bootプロジェクトを実行すると、依存関係がクラスパスに追加されないのはなぜですか?

  10. 10

    Madleはプロジェクトをビルドするために追加の依存関係を必要としますが、Gradleは必要としません

  11. 11

    なぜActionScriptプロジェクトにFlexライブラリを手動で追加する必要があるのですか?

  12. 12

    Wikiを別のリポジトリに保存する必要があるのはなぜですか?

  13. 13

    JBoss ASでデータソースを設定したら、Mavenプロジェクトの依存関係にJDBCDriverを追加する必要がありますか?

  14. 14

    モジュラーTypescriptプロジェクトの依存関係を除外する必要がありますか?

  15. 15

    Firebase / Crashスクリプトファイルを使用してプロジェクトを実行するために、プロジェクトをクリーンアップして再起動する必要があるのはなぜですか

  16. 16

    MVP GWTプロジェクトでClientFactoryを使用する必要があるのはなぜですか?

  17. 17

    ロックオブジェクトを静的にする必要があるのはなぜですか?

  18. 18

    Gradle:対応するプロジェクトの依存関係が利用できない場合にのみDependencyManagerのライブラリを使用する

  19. 19

    プロジェクトの依存関係を追加できないのはなぜですか?

  20. 20

    なぜジェネリックコールを明示的にキャストする必要があるのですか?

  21. 21

    CMakeがVisualStudioプロジェクトに不要なライブラリを追加するのはなぜですか?

  22. 22

    ストアファイルをApp.jsエラーにインポートできません:「ストア」はプロジェクトの依存関係にリストされている必要があります

  23. 23

    ヒープ内にオブジェクトを作成する必要があるのはなぜですか?

  24. 24

    gradleのプロジェクト名はディレクトリである必要がありますか?

  25. 25

    Androidプロジェクトの依存関係には、異なるバージョンのAndroidGradleプラグインが必要です

  26. 26

    'dayjs'はプロジェクトの依存関係のlintエラーにリストされている必要があります

  27. 27

    パブリックGitリポジトリのクローンを作成するためにマシンのsshキーが必要なのはなぜですか?

  28. 28

    settings.xmlファイルでリポジトリを指定する必要があるのはなぜですか

  29. 29

    依存関係でのみ使用されるマクロを使用する必要があるのはなぜですか

ホットタグ

アーカイブ