Use maven2sbt CLI
#
How to Use CLINow you can run it like
$ maven2sbt --help
Usage: Maven2Sbt (file ARGS... | print ARGS...) [-v|--version VERSION] [-h|--help HELP]
A tool to convert Maven pom.xml into sbt build.sbt
Available options: -v|--version VERSION Prints the application version. -h|--help HELP Prints the synopsis and a list of options and arguments.
Available commands: file Convert pom.xml to sbt config and save in the file print Convert pom.xml to sbt config and print it out
#
Save as sbt Config File$ maven2sbt file --help
Usage: Maven2Sbt file -s|--scala-version <version> [-b|--scala-binary-version-name <scala-binary-version-name>] [--props-name <props-name>] [--libs-name <libs-name>] [-o|--out <file>] [--overwrite] <pom-path> [-h|--help HELP]
Convert pom.xml to sbt config and save in the file
Available options: --overwrite Overwrite if the output file already exists. -s|--scala-version <version> Scala version -b|--scala-binary-version-name <scala-binary-version-name> The name of Scala binary version property. This is useful to figure out if it is a Scala library or Java library e.g.) -b scala.binary # or --scala-binary-version-name scala.binary --- <properties> <scala.binary>2.13</scala.binary> </properties> <dependencies> <dependency> <groupId>io.kevinlee</groupId> <artifactId>myLib1_${scala.binary}</artifactId> <version>0.1.0</version> </dependency> <dependency> <groupId>io.kevinlee</groupId> <artifactId>myLib2</artifactId> <version>0.2.0</version> </dependency> </dependencies> --- results in "io.kevinlee" %% "myLib1" % "0.1.0" "io.kevinlee" % "myLib2" % "0.1.0" --- --props-name <props-name> properties object name (e.g. 'props' in `lazy val props = new {}`) (default: props) --libs-name <libs-name> The name of the object containing all the libraries to re-use (e.g. 'libs' in `lazy val libs = new {}`) (default: libs) -o|--out <file> output sbt config file (default: build.sbt) -h|--help HELP Prints the synopsis and a list of options and arguments.
Positional arguments: <pom-path> Path to the pom file.
e.g.)
$ maven2sbt file --scala-version 2.13.4 --scala-binary-version-name scalaBinaryVersion pom.xml# or$ maven2sbt file -s 2.13.4 -b scalaBinaryVersion pom.xml
or
$ maven2sbt file --scala-version 2.13.4 --props-name myProps pom.xml# or$ maven2sbt file -s 2.13.4 --props-name myProps pom.xml
It will generate build.sbt
.
Save sbt config in a different file.
maven2sbt file --scala-version 2.13.4 --out something-else.sbt pom.xml# ormaven2sbt file -s 2.13.4 -o something-else.sbt pom.xml
It will generate something-else.sbt
.
I may faile if the output file already eixsts. If you want to overwrite, use the --overwrite
option.
# build.sbt already exists and want to overwritemaven2sbt file --scala-version 2.13.4 --overwrite pom.xml# ormaven2sbt file -s 2.13.4 --overwrite pom.xml
# something-else.sbt already exists and want to overwritemaven2sbt file --scala-version 2.13.4 --out something-else.sbt --overwrite pom.xml# ormaven2sbt file -s 2.13.4 -o something-else.sbt --overwrite pom.xml
#
Print Out$ maven2sbt print --help
Usage: Maven2Sbt print -s|--scala-version <version> [-b|--scala-binary-version-name <scala-binary-version-name>] [--props-name <props-name>] [--libs-name <libs-name>] <pom-path> [-h|--help HELP]
Convert pom.xml to sbt config and print it out
Available options: -s|--scala-version <version> Scala version -b|--scala-binary-version-name <scala-binary-version-name> The name of Scala binary version property. This is useful to figure out if it is a Scala library or Java library e.g.) -b scala.binary # or --scala-binary-version-name scala.binary --- <properties> <scala.binary>2.13</scala.binary> </properties> <dependencies> <dependency> <groupId>io.kevinlee</groupId> <artifactId>myLib1_${scala.binary}</artifactId> <version>0.1.0</version> </dependency> <dependency> <groupId>io.kevinlee</groupId> <artifactId>myLib2</artifactId> <version>0.2.0</version> </dependency> </dependencies> --- results in "io.kevinlee" %% "myLib1" % "0.1.0" "io.kevinlee" % "myLib2" % "0.1.0" --- --props-name <props-name> properties object name (e.g. 'props' in `lazy val props = new {}`) (default: props) --libs-name <libs-name> The name of the object containing all the libraries to re-use (e.g. 'libs' in `lazy val libs = new {}`) (default: libs) -h|--help HELP Prints the synopsis and a list of options and arguments.
Positional arguments: <pom-path> Path to the pom file.
e.g.)
$ maven2sbt print --scala-version 2.13.4 --scala-binary-version-name scalaBinaryVersion pom.xml# or$ maven2sbt print -s 2.13.4 -b scalaBinaryVersion pom.xml
or
$ maven2sbt print --scala-version 2.13.4 --props-name myProps pom.xml# or$ maven2sbt print -s 2.13.4 --props-name myProps pom.xml
It will print out the content of build.sbt
generated from the given pom.xml