Maven command line usage
mvn --batch-mode -e archetype:generate \ -DgroupId=de.hdm_stuttgart.mi.sd1 -DartifactId=second -Dversion=0.9 \ -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 [INFO] Scanning for projects... ... [INFO] BUILD SUCCESS ...
See artifact reference.
The MI department provides modified archetypes supporting more current versions of unit testing software. These are being provided by a Maven repository server:
Create an empty |
|
Use a text editor creating (or adding) the following
content in
|
After editing you should test your configuration by creating a dummy project (copy and paste to a terminal window):
mvn --batch-mode -e archetype:generate \
-DgroupId=de.hdm_stuttgart.mi.sd1 -DartifactId=second -Dversion=0.9 \
-DarchetypeGroupId=de.hdm_stuttgart.mi -DarchetypeArtifactId=mi-maven-archetype-quickstart -DarchetypeVersion=2.1
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
...
[INFO] BUILD SUCCESS ...
Defining archetype and project details:
mvn --batch-mode ❶ -e archetype:generate ❷ \ \ -DarchetypeGroupId=de.hdm_stuttgart.mi \ ❸ -DarchetypeArtifactId=mi-maven-archetype-quickstart \ -DarchetypeVersion=2.1 \ \ -DgroupId=de.hdm_stuttgart.mi.sd1 ❹ \ -DartifactId=first \ -Dversion=0.9
During project generation Maven shall work in batch mode not asking for user input. |
|
Create a Maven project using an archetype being specified by ❸. |
|
archetypeGroupId, archetypeArtifactId and archetypeVersion uniquely identify an archetype. mi-maven-archetype-quickstart denotes one of several available archetypes. |
|
Likewise groupId, artifactId and version are intended to uniquely define a project being generated. Moreover the groupId property defines the project's default base package to be explained in Objects and Classes. |
> mvn compile [INFO] Scanning for projects... ... [INFO] Building first 0.9 ... [INFO] Changes detected - recompiling the module! [INFO] Compiling 1 source file to /ma/goik/first/target/classes [INFO] -------------------------------------------------------- [INFO] BUILD SUCCESS
> find target/classes -type f
./target/classes/de/hdm_stuttgart/mi/sd1/App.class
...
> cd target/classes ❶ > java de.hdm_stuttgart.mi.sd1.App ❷ Hi there, let's have fun learning Java! ❸
Change to base directory containing compiled Java™ classes. |
|
Application execution. Note: Our |
|
The expected output result. NoteExecuting this particular class requires a configuration
in our project's
|
> mvn package ... T E S T S ... Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 ... [INFO] Building jar: /ma/goik/first/target/first-0.9.jar ... [INFO] Replacing /ma/goik/first/target/first-0.9.jar with /ma/goik/first/target/first-0.9-shaded.jar ... [INFO] BUILD SUCCESS
java -jar target/first-0.9.jar
Hi there, let's have
fun learning Java!
Remark: This will execute
HelloWorld.class
being contained in
first-0.9.jar
.
No. 112
Details on execution
Q: |
In Figure 269, “Executing Java™ archive
java -jar target/first-0.9.jar How does this actually work? There might be multiple
executable classes containing TipHave a closer look on your project's
|
A: |
Our
The Maven > cat META-INF/MANIFEST.MF Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Created-By: Apache Maven 3.5.2 Built-By: goik Build-Jdk: 10.0.2 Main-Class: de.hdm_stuttgart.mi.sd1.App This allows the Java™ runtime to choose the class to be executed. |
> mvn javadoc:javadoc [INFO] Scanning for projects... ... Generating /ma/goik/First/target/site/apidocs/allclasses-noframe.html... Generating /ma/goik/First/target/site/apidocs/index.html... Generating /ma/goik/First/target/site/apidocs/overview-summary.html... Generating /ma/goik/First/target/site/apidocs/help-doc.html...
See e.g. class String documentation.
> mvn clean
...
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ first ---
[INFO] Deleting /ma/goik/first/target
[INFO] ------------------------------------------------------------------------
[