web-dev-qa-db-ja.com

mvn installの代替となるGradle

私はmvnで2つの異なるプロジェクトをビルドしています。私はGradleに置き換えようとしています。

プロジェクト1はSDKで、プロジェクト2はSDKを使用します(例)

Mavenの時点で、mvn installを使用してアーティファクトを作成し、プロジェクト全体をローカルリポジトリに追加します。

私はそのようなgradleで働くのが好きです。私はプロジェクト1 build.gradleがgradleローカルリポジトリとして投稿する必要があり、サンプルプロジェクトがそれを使用する必要があるのが好きです。

Mavenでは、プロジェクトアーティファクトを.m2フォルダーに追加するmvnインストールを行いますが、プロジェクトアーティファクトをローカルリポジトリに追加できるようにgradleで行う方法です。

私ができる方法はありますか?

144
Rajmahendra

sdk/build.gradle

apply plugin: "maven"

group = "foo"
version = "1.0"

example/build.gradle

repositories {
    mavenLocal()
}

dependencies {
    compile "foo:sdk:1.0"
}
$sdk> gradle install

$example> gradle build
153

あなたが探しているかもしれません:

gradle publishToMavenLocal

利用可能な:

apply plugin: 'maven-publish'

参照: https://docs.gradle.org/current/userguide/publishing_maven.html

55
Miguel Reyes

Gradleのマルチプロジェクトビルドに関するドキュメント をご覧ください。

いくつかの追加の依存関係がある例を次に示します。ルートフォルダーでgradle installを呼び出すだけで、すべてがビルドされ、ローカルリポジトリに配置されます。

フォルダー構造:

root
+--> build.gradle
+--> settings.gradle
+--> sdk
|    +--> build.gradle
+--> example
     +--> build.gradle

root/build.gradle:

allprojects {
  apply plugin: 'Java'
  apply plugin: 'maven'

  group = 'myGroup'
  version = '0.1-SNAPSHOT'
}

root/settings.gradle:

include 'sdk'
include 'example'

root/sdk/build.gradle:

dependencies {
  // just an example external dep.
  compile group:'commons-lang', name:'commons-lang', version:'2.3'
}

root/example/build.gradle:

dependencies {
  compile project(':sdk')
  compile group:'log4j', name:'log4j', version:'1.2.16'
}
8
csaba.sulyok