В моем предложении:
# 1 Создать проект maven
# 2 Создать банку FAT, используя плагин сборки (см. Ниже)
# 3 Добавить плагин exec (см.pom ниже)
# 4 Создать главный класс (см. код MainApp.java ниже)
# 5 Перейти в каталог проекта и запустить команду maven
mvn clean install -DskipTests
Это сгенерирует жирное имя jar sample-jar-with-dependencies.jar
# 6 Выполнить следующую команду maven для запуска класса MainApp
mvn exec: exec
# 7 Готово!
Надеюсь, это будет полезно.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>java-sample-project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<jdk.version>1.8</jdk.version>
<junit.version>4.11</junit.version>
<fat-jar-name>target/sample-jar-with-dependencies.jar</fat-jar-name>
<main-class-name>com.java.example.MainApp</main-class-name>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>sample</finalName>
<plugins>
<!-- Set a compiler level -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
<!-- Added JUnit support -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
</plugin>
<!-- Maven Exec Plugin to run main class -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>sample-id-1</id>
<!-- <phase>prepare-package</phase> -->
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>java</executable>
<mainClass>com.java.example.MainApp</mainClass>
<arguments>
<argument>-classpath</argument>
<argument>${fat-jar-name}</argument>
<argument>${main-class-name}</argument>
</arguments>
</configuration>
</plugin>
<!-- Maven Assembly Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<!-- get all project dependencies -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!-- MainClass in mainfest make a executable jar -->
<archive>
<manifest>
<mainClass>com.java.example.MainApp</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!-- bind to the packaging phase -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
MainApp.java
package com.java.example;
public class MainApp {
public static void main(String[] args) {
System.out.println("Hello World...");
}
}
Вывод команды mvn exec: exec
$ mvn exec:exec
Picked up _JAVA_OPTIONS: -Xmx512M
[INFO] Scanning for projects...
[INFO]
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building java-sample-project 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- exec-maven-plugin:1.2.1:exec (default-cli) @ java-sample-project ---
Hello World...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.841 s
[INFO] Finished at: 2018-06-06T21:29:32+05:30
[INFO] Final Memory: 6M/27M
[INFO] ------------------------------------------------------------------------