Bootstraps a Maven project. Because archetypes shouldn’t be so complicated.
Mvnizer is ideal to create a throwaway Maven project that adds junit as a dependency and sets up the Maven project structure.
Mvnizer can be installed as follows:
$ gem install mvnizer
Mvnizer is used as follows:
$ mvnizer new <coordinates>
The coordinates can have the following format:
<group:>artifact<:version><:type>
with the values between angled brackets optional. type
can only have one of the following three values: jar
(default), war
or pom
. This command creates a project in the artifact
folder, populating the proper values in the pom file.
Here are some examples of valid commands:
mvnizer new foo mvnizer new foo:war mvnizer new foo:1.0.0:war mvnizer new com.example:foo mvnizer new com.example:foo:war mvnizer new com.example:foo:1.0.0:war
The version must be of the form major.minor.patch-classifier
.
The following options can be used to add specific files to the project:
--docker
- this creates a
Dockerfile
based on the Java 11 distroless base image. It assumes that the jar generated by the build can be executed using thejava -jar
command; --main=[Main class name]
- this creates a class with a
main
method that can be executed using thejava -jar
command. It also adds themaven-shade-plugin
to the pom, with this class as the main class. --logger
- this adds logging dependencies to the project. The jar added are defined as the
logging_deps
of the configuration file. The default are:
logging_deps: [ "org.slf4j:slf4j-api:1.7.36:jar", "org.slf4j:slf4j-simple:1.7.36:jar", "ch.qos.logback:logback-core:1.2.11:jar" ]
If the type of project generated is war
, a servlet (ExampleServlet
) is generated, along with a JSP file and an empty web.xml
file.
When running the Jetty plugin, e.g.:
mvn org.eclipse.jetty:jetty-maven-plugin:9.4.12.v20180830:run-war
The example can then be accessed at http://localhost:8080/hello
To add dependencies, you must be in the folder where the pom file you want to add the dependency to is.
To add a dependency, simply pass the coordinates of the dependency, and add scope if needed (if no scope is given, compile
is assumed):
mvnizer add org.apache.commons:commons-lang3:3.1:jar mvnizer add org.mockito:mockito-core:1.9.5-rc1:jar:test
The search
features makes it easy to find the coordinates of the dependencies for you.
You can search for dependencies in the Maven central repository with the command:
$ mvnizer search <text>
MIT License.
© Copyright 2012–2022 — Sébastien Le Callonnec