I have 2 different project build on mvn. I am trying to replace to Gradle.
Project 1 is an SDK, and project 2 is using that sdk (example).
In the time of maven it creates artifact using mvn install which adds the whole project into local repository.
I like to work in gradle like that. I like project 1 build.gradle need to post it as a gradle local repository and then example project need to use it.
In maven we do mvn install which adds a project artifact into .m2 folder but how to do in gradle so what i can add a project artefact's into the local repository.
Any way that I can do so?
14 Answers
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 5You may be looking for:
gradle publishToMavenLocal Available with:
apply plugin: 'maven-publish' See: Maven Publish Plugin
3Check out Gradle's documentation on multi-project builds.
Here's an example, with some extra dependencies. Just call gradle install in the root folder, and all will be built and put to your local repo.
Folder structure:
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' } 1You need to publish your own library to your local repository. You can do that in the following way:
Add
maven-publishplugin:plugins { // your other plugins come here... id 'maven-publish' }Add the publishing section to your build file:
publishing { publications { myCoolLibrary(MavenPublication) { from components.java } } }Run
gradle build publishToMavenLocalFind more details in the documentation.