web-dev-qa-db-fra.com

Gradle alterner à mvn installer

J'ai 2 projets différents construits sur MVN. J'essaie de remplacer Gradle.

le projet 1 est un SDK et le projet 2 utilise le sdk (exemple)

À l'époque de maven, il crée un artefact à l'aide de mvn install, qui ajoute l'ensemble du projet au référentiel local.

J'aime bien travailler comme ça. J'aime le projet 1 build.gradle doit le poster en tant que référentiel local, puis les exemples de projets doivent l’utiliser.

Dans maven, nous installons MVN, ce qui ajoute un artefact de projet dans le dossier .m2, mais comment le faire de manière à ce que je puisse ajouter un artefact de projet dans le référentiel local.

Est-ce que je peux le faire?

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

Vous recherchez peut-être:

gradle publishToMavenLocal

Disponible avec:

apply plugin: 'maven-publish'

Voir: https://docs.gradle.org/current/userguide/publishing_maven.html

55
Miguel Reyes

Découvrez la documentation de Gradle sur les versions multi-projets .

Voici un exemple, avec quelques dépendances supplémentaires. Il suffit d'appeler gradle install dans le dossier racine et tout sera construit et placé dans votre référentiel local.

Structure du dossier:

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/exemple/build.gradle:

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