ビルド構成で従来のリポジトリ管理 (グループ、バージョン解決など) を使用したいが、ビルドが Maven または Ivy 記述子ファイルに依存しないようにしたい。
Gradle の ClientModule でこれを実行しようとしています。ドキュメントには、ビルドファイルでモジュールのメタデータを宣言することでこれが可能になると記載されています。
http://www.gradle.org/docs/1.7/userguide/dependency_management.html#sub:client_module_dependencies
これは私が持っているものです:
repositories {
//no external repos
}
dependencies {
runtime module("org.lessjs:lessjs:1.4.1") {
transitive = true
artifact {
type = "js"
name = "lessjs"
url = "https://raw.github.com/less/less.js/master/dist/less-1.4.1.min.js"
}
}
runtime module("org.jquery:jquery:1.10.1") {
transitive = true
artifact {
type = "js"
name = "jquery"
url= "http://code.jquery.com/jquery-1.10.2.js"
}
}
}
JavaScript ファイルがローカル リポジトリに配置されるように、指定された URL からアーティファクトをダウンロードしたいと考えています。ただし、2 つのモジュールで未解決の依存関係エラーが発生します。
どうすればこれを機能させることができますか?このカスタム依存関係スキームを解決するには、新しいタイプの ArtifactRespository を実装する必要がありますか?
更新: 特定の JavaScript 依存関係に興味深い WebJars ( http://www.webjars.org/ ) に遭遇しましたが、可能であれば Maven/Ivy リポジトリなしでこれを行う方法を知りたいです。
更新パート 2: Ivy のサポートを主張しているにもかかわらず、Gradle はこれをサポートしていないようです。ローカル Ivy モジュール ファイルと、リモート アーティファクトをポイントし、ファイルをローカル キャッシュにダウンロードするカスタム URL を使用して、Gant/Ivy でこれを機能させることができました。これは、Javascript ファイルなどの任意のファイルで実行できます。