私のbuild.gradleで、プラグインを追加しました:
apply plugin: 'maven'
次に、「gradle install」を使用して、結果のjarをMavenリポジトリにコピーできます:〜/ .m2/repository
ただし、私のGradleリポジトリは〜/ .gradle/caches/modules-2/files-2.1にあります。 jarをこのリポジトリにインストールするにはどうすればよいですか?
私のために働いたのはgradle install -Dmaven.repo.local=the/path/of/the/folder
。
どのIDEを使用しているのかわかりませんが、Eclipseでは新しい実行構成を追加でき、Gradleのタスクではinstall
を追加し、プログラムの引数では-Dmaven.repo.local=the/path/of/the/folder
。
キャッシュの操作を主張する場合、最善の策は、キャッシュ内の最新のJARを手動で置き換えるシェルスクリプトを記述することです。
理由は、Mavenが使用する「ローカルリポジトリ」とは対照的に、Gradleが厳密な意味で「ローカルキャッシュ」の概念を使用するため、Gradleにはこの機能が組み込まれていないためです。
違いは、手動でファイルをローカルキャッシュに保存することは想定されていないことです。
推奨される方法で問題を解決するには:プロジェクトAがプロジェクトBの依存関係であるとします。その後、プロジェクトAでpublishToMavenLocal
コマンドを呼び出して、依存関係を更新できます。プロジェクトBの_gradle.build
_にmavenLocal()
リポジトリを追加します。したがって、プロジェクトBをビルドするたびに、Gradleは依存関係Aを解決するときにローカルリポジトリをチェックします。
mavenLocal()は次のように解決されます。
非標準のローカルMavenリポジトリを使用するには、build.gradleで次の構成を使用できます。
リポジトリ{maven {url '/ Users/manuelj/Apache/maven/repository'}}
Jarファイルとそのログバック依存関係を作成するbuild.gradleサンプル。 mavenlocale()を使用して、プラグインを適用します: 'Java'
プラグインの適用:「Eclipse」
バージョン= '1.0'
sourceCompatibility = 1.7
ターゲットの互換性= 1.7
//すべての依存関係を持つ単一のJarを作成します
タスクfatJar(type:Jar){
manifest {
attributes 'Implementation-Title': 'Gradle Jar File Example',
'Implementation-Version': version,
'Main-Class': 'com.mkyong.DateUtils'
}
baseName = project.name + '-all'
from { configurations.compile.collect { it.isDirectory() ? it :
zipTree(it)
}
} jarを使用}
// Maven中央リポジトリから依存関係を取得します
リポジトリ{
mavenCentral()
}
//プロジェクトの依存関係
依存関係{
compile 'ch.qos.logback:logback-classic:1.1.2'
}