Я заканчиваю перенос автономной многопроектной Java из Ant в Maven.Структура моих проектов похожа на следующую:
parent-project
|_ Project A
| |
|_Project B
|_Project C
В родительском проекте нет кода, но я определяю в DependencyManager наиболее распространенные используемые зависимости и их версии.ProjectA POM использует зависимости, определенные в parent-project и ProjectB, а также вызывает методы из ProjectA.
Я могу прекрасно выполнить свое настольное приложение из Eclipse как проект Maven (цели: exec: java).Вкладка Иерархия зависимостей, предоставляемая m2e, показывает правильный порядок зависимостей, и он такой же, как и зависимости: build-classpath.
dependency:build-classpath tells Maven to output the path of the dependencies from the local repository in a classpath format to be used in java -cp. The classpath file may also be attached and installed/deployed along with the main artifact.
Однако, несмотря на то, что зависимости моего проекта кажутся правильными, когда я запускаю автономное приложение как MavenОсновной проект из Eclipse, это не то же самое, когда я упаковываю jar с его зависимостями jar в подкаталог (созданный с помощью maven-jar-plugin).
MyApp.jar
|_ \lib
|_ MyApp dependencies
|_ Maven projects jars
|_ Maven projects jars dependencies
Мой файл манифеста включает classpath, который является эквивалентом для выполнения «mvn dependency: resolv», но мне все еще не удается выяснить, откуда берутся эти jar-файлы (даже меняя POMкажется, не имеет никакого влияния на это).Мое приложение удается запустить, но у меня много проблем с библиотеками времени выполнения, потому что оно не использует ту, для которой оно предназначено.
dependency:resolve tells Maven to resolve all dependencies and displays the version
Если есть кто-то, кто может указать источникэта проблема, я был бы вечно рад.