Я только начинаю использовать Maven, (оценивая его, действительно), и мне нужно иметь возможность быстро генерировать файл JAR для моего приложения и каталог со всеми зависимостями (например, lib), чтобы я мог развернуть эти два будут работать автономно. Генерация JAR-файла с соответствующим манифестом проста, но я не знаю, как заставить Maven скопировать зависимости для текущего проекта в каталог lib
, который я могу развернуть.Может ли Maven собрать все зависимые JAR для проекта, чтобы помочь с развертыванием приложения?
Поскольку это для автономных приложений Java, я не не заинтересован в развертывании в репозитории Maven, что также довольно тривиально или, по крайней мере, легко googleable.
Я узнал, как все это делать кроме копировать зависимые файлы JAR в некоторый указанный каталог. Это рабочий процесс Я ищу:
$ mvn clean
$ mvn package
$ cp -r target/{lib,myApp.jar} installLocation
Затем работает myApp.jar
из installLocation
как файл JAR должен «просто работать» независимо от моего $CLASSPATH
.
Чтобы попытаться предвосхитить некоторые ответы:
- Я есть Main-класс: набор, и она отлично работает.
- Я также установил путь к классам в MANIFEST.MF, и это тоже отлично работает.
- Я узнал, как использовать
<classpathPrefix>
и<classpathMavenRepositoryLayout>
, чтобы сделать эту работу, но только на моей машине. (через:<classpathPrefix>${settings.localRepository}</classpathPrefix>
)
Добавлено это мой pom.xml внутри Eclipse. Ничего не происходит –
Мне пришлось скачать maven за пределами eclipse, добавлена папка/bin на мой путь, а затем запущена 'mvn dependency: copy-dependencies'. ДА! Теперь это работает, Maven делает то, что он должен делать! Теперь просто скопируйте все * .jar в мой проект и добавьте в мой путь сборки –