У меня есть приложение Java командной строки, которое имеет зависимости от других библиотек / библиотек. Поэтому я запускаю приложение с -cp
, например, java -cp libs/* <package.MainClass> <args>
.
Я пытаюсь скопировать libs / jars для зависимостей в моем Java-приложении и правильно описать MANIFEST.MF, так как мне больше не нужен параметр -cp libs/*
.
Мой проект - проект maven, поэтому я использую maven-assembly-plugin
для копирования библиотек в моем JAR-файле и описания MANIFEST.MF. То, что я сейчас нахожусь в следующем:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<archive>
<manifest>
<mainClass>MainClass</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>dist</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
И мой MANIFEST.MF выглядит так:
Manifest-Version: 1.0
Built-By: user
Class-Path: lib/deps_A.jar lib/deps_B.jar
Created-By: Apache Maven 3.6.0
Build-Jdk: 1.8.0_202
Main-Class: MainClass
Мой вопрос: как можно описать файл MANIFEST.MF, чтобы я запускал свое приложение с java -jar <my-jar-application.jar> <args>
?