2017-08-18 8 views
0

私はbuild.gradleにインキュベートplugins blockを使用したい:リモートスクリプトプラグインからリポジトリをpluginManagementブロックに適用するにはどうすればよいですか?

plugins { 
    id "com.jfrog.bintray" version "0.4.1" 
} 

デフォルトでは、これはGradleのプラグインポータルからプラグインを引っ張ります。しかし、我々の組織では、パブリックGradleプラグインポータルまたは同様のリポジトリではなく、内部Artifactoryリポジトリを使用する必要があるという要件があります。

私は pluginManagement blocksettings.gradleに以下を追加することで、リポジトリを指定するために使用することができることがわかり

pluginManagement { 
    repositories { 
     maven { 
      url "https://artifactory.example.com/" 
     } 
    } 
} 

我々はいくつかの資格ロジックと一緒に、複数のリポジトリを持っているので、過去に、私たちは持っていましたこれは、すべてのそのように私たちのようなbuild.gradleファイルにアクセスし、リモートのURLでスクリプトプラグインにバンドルさ:

apply from: "https://shared.example.com/repositories.gradle" 

repositories.gradleファイルには、現在repositories {}ブロックが含まれていますそれにはいくつかのリポジトリがあります。

このリモートスクリプトプラグインをpluginManagementブロックに適用する方法はありますか?

pluginManagement { 
    apply from: "https://shared.example.com/repositories.gradle" 
} 

しかし、私はエラーメッセージCould not find method repositories() for argumentsを得た:私は私のsettings.gradleファイルに行くと、このようにそれをやってみました。私はこれを働かせることができる他の方法がありますか?

答えて

0

外部のGradleスクリプトを特定のコンテキスト(例:pluginManagement)に適用するだけで、このコンテキストでは実行されません。 applyメソッドはSettingsオブジェクトによって実装されるため、デフォルトではターゲットオブジェクトとして選択されています。 applyメソッドに渡すマップのtoパラメータを使用して、別のオブジェクトにスクリプトを委任できます。

apply to: pluginManagement, from: "https://shared.example.com/repositories.gradle" 
関連する問題