Запуск основных классов из развернутого артефакта с Maven
-
11-12-2019 - |
Вопрос
Я не понимаю. Я настроил My Pom.xml, чтобы использовать плагин Maven Exec, чтобы я мог выполнять некоторые классы в моем проекте с правильными классовыми паткой, -D определяют и -javaagent. Итак, из оболочки с классами, встроенными в ./Target/Classes etc .. Я могу запустить основные () методы, используя
mvn exec:java -Dexec:mainClass=classWithAMainMethod
.
Все хорошо.
Теперь я хочу отправить мой проект (артефакт JAR), и я все еще хочу иметь возможность использовать конфигурацию, которую я поставил в POM.xml для запуска классов с правильными аргументами и т. Д. .. Как мне сделать Это? Есть ли какой-то способ пребывания
mvn -artifactJar=MyArtifact.jar exec:java -Dexec:mainClass=classWithAMainMethod
.
Когда все у меня есть, это myartifact.jar (или репозиторий Maven с myartifact.jar в нем) ??
Я пробовал следующее:
- .
-
Получить банку с зависимостью: получить цель и расстегнуть ее. Я ничего не могу сделать с этим Поскольку Pom.xml, кажется, в конечном итоге в Meta-inf / Maven в артефактной банке. Есть ли способ использовать его?
-
Создание манекенного пома, где я хочу запустить свой проект с одной зависимостью в артефакте моих проектов. Затем я могу использовать EXEC: Java для запуска основных классов, но он не использует конфигурацию из моих проектов POM.
спасибо.
Решение 2
Плагин Appassembler работал довольно хорошо для меня.Я заменил конфигурацию плагина Exec в POM моего проекта с чем-то вроде этого в разделе Build:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.2.2</version>
<configuration>
<repositoryLayout>flat</repositoryLayout>
<repositoryName>lib</repositoryName>
<extraJvmArguments>
-Djava.rmi.server.hostname=localhost
-javaagent:${spring.javaagent.jar}
</extraJvmArguments>
<programs>
<program>
<name>foo1</name>
<mainClass>net.foor.FooMain</mainClass>
</program>
...
</configuration>
</plugin>
.
в Eclipse Я создал установку внешних инструментов для запуска результирующих скриптов из Target / appassembler / bin
на машине, которую я хотел развернуть (при условии доступа к внутренней репозитории Maven, где были установлены / развертываются мои артефакты + зависимости):
- .
- Первое используйте wget или mvn Зависимость: get получить копию моей артефактной банке.
- извлечь пом. unzip -j artifact.jar * /pom.xml *
- беги mvn appassembler: собрать -dasembleedeTory=.
- Переместите артефакт.jar в каталог ./lib
- Установить Выполнить разрешения на сгенерированные сценарии оболочки в ./bin
Другие советы
Вы пытались использовать что-то вроде Onejar ?
Это звучит как то, что вы ищете.