Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Maven как вызвать goal дочернего проекта ? / 10 сообщений из 10, страница 1 из 1
25.04.2012, 11:59:28
    #37770187
elwood
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven как вызвать goal дочернего проекта ?
Собственно, есть проект, на выходе которого получается ear. Состоит из главного pom (который packaging=pom) и трех дочерних проектов (ejb, war и ear, собирающий ejb+war в одно целое). Целиком сборка и деплой проекта производится парой команд

mvn clean package <- эта команда относится к главному pom
mvn jboss:hard-deploy <- эта команда относится к проекту ear

Хочется запихнуть это в одну команду а-ля mvn clean package ear-application.jboss:hard-deploy (чтобы добавить в IDEA "Configuration" и редеплоить одним нажатием), но как я понимаю, мейвен не позволяет так делать (поскольку конкретно этот запуск мейвена работает в контексте главного pom и нельзя напрямую вызвать goal в дочернем pom-файле).

Если же выносить гоал jboss:hard-deploy в родительский pom, то никак не получается предотвратить его выполнение для самого родительского pom (а мне нужно, чтобы эта штука выполнилась только для ear-проекта). configuration-skip не работает, а если в execution указать пустой список goals, ему тоже по барабану.

Гуру мейвена, подскажите, можно ли сделать то, о чем я говорю ?
В IDEA почему-то никак нельзя сложить 2 мейвеновские команды в одно целое и заставить считать это "Build конфигурацией".
...
Рейтинг: 0 / 0
25.04.2012, 14:28:02
    #37770578
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven как вызвать goal дочернего проекта ?
elwood,

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<plugin>
   <artifactId>jboss-maven-plugin</artifactId>
   <executions>
    <execution>
    <phase>package</phase><!--deploy-->
    <goals>
      <goal>hard-deploy</goal>
   </goals>
...



mvn clean package (или + deploy)
...
Рейтинг: 0 / 0
25.04.2012, 15:27:49
    #37770775
elwood
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven как вызвать goal дочернего проекта ?
0FD,

Спасибо, так-то можно конечно, но к сожалению, это сломает суть package. Другой разработчик допустим из консольки сделает clean package, а мейвен начнет пытаться в jboss деплоить сборку.
...
Рейтинг: 0 / 0
25.04.2012, 19:29:10
    #37771298
marx_freedom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven как вызвать goal дочернего проекта ?
elwood,

можно вынести такую "привязку" в профиль и сделать ему активацию по проперти
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    <profiles>
        <profile>
            <id>jboss-deploy</id>
            <activation>
                <property>
                    <name>jboss-deploy</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
<!-- тут конфигурация из ответа выше -->

<!-- ну и закрыть все теги -->
...
Рейтинг: 0 / 0
26.04.2012, 00:05:51
    #37771465
elwood
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven как вызвать goal дочернего проекта ?
marx_freedom,

о, спасибо, то, что нужно !

только недопонял, как это работать будет ? activation определяет, будет ли goal вызываться или нет глобально для всех плагинов, перечисленных в build секции профиля ?
...
Рейтинг: 0 / 0
26.04.2012, 02:09:07
    #37771495
пролетевший
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven как вызвать goal дочернего проекта ?
Специально для этого делал свой плагин который сам находит наиболее подходящий проект для деплоймента ( в порядке ear - rar - war - jar ) среди модулей. Сейчас работает с Jboss от 4 до 6 и Glassfish 3. До Jboss 7 пока руки не дошли, скоро мигрируем на 7, тогда и добавлю...
...
Рейтинг: 0 / 0
26.04.2012, 10:55:53
    #37771819
GKS_Samara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven как вызвать goal дочернего проекта ?
Добрый день, пролетевший!

> До Jboss 7 пока руки не дошли, скоро мигрируем на 7, тогда и добавлю...

Интересно бы почитать про миграцию.
Я вот пока воткнулся в то, что у меня много завязано на mappedName
бинов, а в 7ке их задавать (вроде как) нельзя. Даже плагины через это
сделал, блин.


--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.04.2012, 13:12:49
    #37772215
elwood
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven как вызвать goal дочернего проекта ?
пролетевший,

Вот что я искал ! Ура :)
Спасибо огромное.

Конфига, если кому интересно:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<build>
        <plugins>
            <plugin>
                <groupId>org.richfaces.cdk</groupId>
                <artifactId>maven-deployer-plugin</artifactId>
                <version>1.0.0-SNAPSHOT</version>
                <configuration>
                    <targetHost>172.28.1.4</targetHost>
                    <targetPort>8091</targetPort>
                    <username>admin</username>
                    <password>superpass</password>
                    <secure>true</secure>
                    <remote>false</remote>
                </configuration>
            </plugin>
        </plugins>
    </build>



Маленькое пожелание - добавьте, пожалуйста, в ридми на гитхабе перечень доступных пропертей в configuration-секции:

авторdeployer:deploy-jboss
Description: Deploys a directory or file to JBoss via JMX
Implementation: org.ajax4jsf.deployer.DeployJbossMojo
Language: java

Available parameters:

buildDirectory (Default: ${project.build.directory})
Expression: ${buildDirectory}
The name of the file or directory to deploy or undeploy.

deploymentFile
Expression: ${deploymentFile}
File to deploy. For jar/war/ejb/ear projects, default value is project
archive. For multi-module ( pom packaging ) projects, plugin tries to
find the most important module:
- If one of project modules has type 'ear', use it
- Otherwise, try to find 'war' project.
- Repeat for 'sar' and 'ear' types.
- If all types of above were not found, use the last 'jar' packaged
module.

localHost
Expression: ${localHost}
The host/ip address where local server is running on. For deplojment on
the remote server, that adress should be available for requests from the
target server. In the most cases, pligin is able to determine public
network interface on the machine where it's running. Use that parameter
if automated detection fails ( multi-home host, network address
translation, VPN ).

localPort (Default: 9999)
Expression: ${localPort}
The port on which the local server is running on. Jboss downloads file
for deployment by http, therefore plugin starts local server for
download.

password
Expression: ${password}
The default password to use when authenticating with target server.

remote (Default: true)
Expression: ${http}
Jboss 5.1.GA has a bug in http protocol deploiment, therefore remote
deploiment is not available. In that case, set this option to true for
use file: protocol instead of http:

secure (Default: false)
Expression: ${secure}
Enables https protocol.

serverId
Expression: ${serverId}
The targetServer is id to use when authenticating with remote server, or
null to use defaults.

targetHost (Default: localhost)
Expression: ${targetHost}
The host name where target server is running on

targetPort (Default: 8080)
Expression: ${targetPort}
The targetPort where server admin is running on. Default value is 8080.

username
Expression: ${username}
The username to use when authenticating with target server.

(было получено командой mvn help:describe -Dcmd=deployer:deploy-jboss -Ddetail)

И да, еще бы отметить в ридми, что remote deploy на 5.1GA jboss не пашет из-за бага в application server (пришлось смотреть исходники, чтобы это узнать).
...
Рейтинг: 0 / 0
26.04.2012, 20:04:47
    #37773018
пролетевший
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven как вызвать goal дочернего проекта ?
elwood,
ну github тем и хорош что любой может подправить и сделать pull request. А так я только когда у меня время найдется :-(
С jboss5 пашет, но только локально. Там действительно баг в сервере из за которого менеджер не воспринимает сетевые URL. флаг remote=false именно это и делает, вместо http://... отправляет проект на деплоймент как file:///...
...
Рейтинг: 0 / 0
26.04.2012, 23:06:52
    #37773133
marx_freedom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven как вызвать goal дочернего проекта ?
elwood,

activation определяет когда к основной конфигурации (всё, что есть в pom.xml) подключится еще и то, что указано для конкретного профиля. вызов мавена выглядел бы так "mvn clean package -Djboss-deploy=true".
Вот дока о профилях http://maven.apache.org/guides/introduction/introduction-to-profiles.html, хотя вижу уже без них сделали.
Даже если вас сожрали - выходов все равно несколько :) :) :)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Maven как вызвать goal дочернего проекта ? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]