2010-04-20 1 views
1

У меня есть проект maven, который состоит из нескольких модулей. Это должно быть развернуто на клиентской машине и будет включать установку Tomcat и использование NSIS для установщика. Существует отдельное приложение, которое контролирует и может кот перезапустить его, выполнять обновления и т.д.maven сборки. Помещение каждой зависимости с переходными зависимостями в собственный каталог?

Итак, у меня есть установки модулей следующим образом:

 
project 
    +-- client (all code, handlers, for the war) 
    +-- client-common - (shared code, shared between monitor and client) 
    +-- client-web - (the war, basically just uses war has applicationcontext, web.xml,etc) 
    +-- monitor - (the monitor application jar. Uses wrapper to run) 

Итак, мне нужно создать инсталлятор. Я планировал создать еще один модуль, который будет установщиком. Вот где бы я хотел иметь каталог tomcat, и я бы хотел, чтобы maven «собрал» все, а затем запустил NSIS, чтобы создать окончательный установщик.

Тем не менее, мне нужно иметь файл jar монитора в каталоге, а затем все зависимости мониторов в каталоге lib /. Окончательная структура каталога должна быть:

 
project-installer-directory/monitor/monitor-version.jar 
project-installer-directory/monitor/lib/monitor-dep-1.jar 
project-installer-directory/monitor/lib/monitor-dep-2.jar 
project-installer-directory/monitor/lib/monitor-dep-3.jar 
project-installer-directory/webapps/client-web.war 

Где в клиент-веб \ WEB-INF \ каталог Lib мы будем иметь зависимости всех клиентских веб-после того, как она взорвалась. Это работает, у меня есть файл .war. У меня возникают проблемы с получением зависимостей модулей монитора независимо от зависимостей клиент-веб-модуля.

Я попытался создать модуль установщика и установить зависимости монитора и клиента-сети, но когда я использую копии-зависимости, это дает мне все. Не то, что я хочу.

Я склоняюсь к созданию нового модуля под названием monitor-assembly или что-то, чтобы дать мне zip-файл, который содержит нужный мне формат каталога, но это еще еще один модуль.

Может кто-нибудь, пожалуйста, помогите мне с правильным способом выполнить это?

спасибо!

ответ

0

Наиболее элегантным было бы написать собственный плагин Maven или расширить maven-dependency-plugin. На самом деле вам нужно приблизиться к dependency:copy-dependencies, но вам нужно указать, с каким артефактом вы хотите начать. Как я вижу из кода, на данный момент это невозможно.

Дальнейшая идея: вы можете создать одну почтовую сборку для каждого модуля (включая необходимые вам зависимости от модуля) и использовать зависимость: распаковать, чтобы распаковать эти почтовые индексы в вашем модуле установщика.