This tool obtains the effective pom of the current project, reads its dependencies and generates build.gradle scripts.
- Uses effective pom and effective settings (support for pom inheritance, dependency management, properties)
- Supports both single module and multimodule projects
- Generates settings.gradle for multimodule projects
- Supports custom module names (that differ from directory names)
- Generates general metadata - id, description and version
- Applies maven, java and war plugins (as needed)
- Supports packaging war projects as jars if needed
- Generates dependencies (both external and inter-module)
- Generates download repositories (inc. local maven repository)
- Adjusts java compiler settings
- Supports packaging of sources and tests
- Supports testng runner
- Generates global exclusions from Maven enforcer plugin settings
- Generate deployment settings (with support to optional dependencies and provided scope in generated pom.xml)
- Add installation task to build.gradle of the project to setup the libs and scripts automatically.
- Current version works with Gradle 0.9-rc-3 only.
- Download the latest jar from JFrog Artifactory repository
- Put the jar into $GRADLE_HOME/lib
- Put the batch files from sources bin directory into $GRADLE_HOME/bin
- Run maven2gradle batch in the root of the converted project
- -verbose prints the obtained effective pom
- -keepFile saves the obtained effective pom
- You'll need a gradle.properties file, as described here: http://gradle.org/0.9-rc-3/docs/userguide/userguide_single.html#sec:repositories Look at 33.5.2.1 "Accessing password protected Maven repositories", example 33.24. In short: create gradle.properties file in your ~.gradle and define USER and PASSWORD properties.
Note: Your project will be considered multi-module only if your reactor is also a parent of at least one of your modules. Why so? Reactor project is built last, when Parent project is built first. I need reactor to be built first, because effective-pom Mojo generates needed output only if it founds modules in first project it encounters. Making reactor also a parent achieves this.