powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Maven как вызвать goal дочернего проекта ?
10 сообщений из 10, страница 1 из 1
Maven как вызвать goal дочернего проекта ?
    #37770187
elwood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно, есть проект, на выходе которого получается 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
Maven как вызвать goal дочернего проекта ?
    #37770578
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Maven как вызвать goal дочернего проекта ?
    #37770775
elwood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0FD,

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

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

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

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

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


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

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

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

Код: 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
Maven как вызвать goal дочернего проекта ?
    #37773018
пролетевший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elwood,
ну github тем и хорош что любой может подправить и сделать pull request. А так я только когда у меня время найдется :-(
С jboss5 пашет, но только локально. Там действительно баг в сервере из за которого менеджер не воспринимает сетевые URL. флаг remote=false именно это и делает, вместо http://... отправляет проект на деплоймент как file:///...
...
Рейтинг: 0 / 0
Maven как вызвать goal дочернего проекта ?
    #37773133
marx_freedom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elwood,

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


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