заменить стандартные цели жизненного цикла Maven - PullRequest
4 голосов
/ 29 июня 2011

Когда я запускаю mvn deploy в моем проекте, который имеет <packaging>war</packaging>, я получаю ошибку:

[ОШИБКА] Не удалось выполнить цель org.apache.maven.plugins: maven-deploy-плагин: 2.5: развертывание (default-deploy) в проекте store-service-impl: Развертывание не выполнено: элемент хранилища не указан в POM внутри элемента distributionManagement или в -DaltDeploymentRepository = id :: layout :: url параметр

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

В моем случае я хочу развернутьВойна с удаленным экземпляром Tomcat, а не с удаленным хранилищем Maven.Я добавил следующее в pom.xml

       <plugin>
            <groupId>org.codehaus.cargo</groupId>
            <artifactId>cargo-maven2-plugin</artifactId>
            <version>1.1.1</version>
            <configuration>
                <container>
                    <containerId>tomcat6x</containerId>
                    <type>remote</type>
                </container>
                <!--
                <executions>
                    <execution>
                        <id>deploy-tomcat</id>
                        <phase>deploy</phase>
                        <goals>
                           <goal>deploy</goal>
                        </goals>
                    </execution>
                </executions>
                -->
                <configuration>
                    <type>runtime</type>
                    <properties>
                        <cargo.remote.uri>http://10.60.60.60:8080/manager</cargo.remote.uri>
                        <cargo.remote.username>jack</cargo.remote.username>
                        <cargo.remote.password>secret</cargo.remote.password>
                    </properties>
                </configuration>
                <deployer>
                    <type>remote</type>
                </deployer>
            </configuration>
        </plugin>

. Это успешно развертывает .war, когда я запускаю mvn cargo:deploy.Однако если я затем свяжу эту цель с фазой deploy жизненного цикла Maven, раскомментировав элемент <executions>, я получу вышеупомянутую ошибку.

Похоже, цель cargo:deploy была добавлена ​​вцели, связанные с фазой deploy, но я хочу заменить цель deploy:deploy, связанную с фазой жизненного цикла deploy (по умолчанию), с целью cargo:deploy, возможно ли это

Ответы [ 3 ]

2 голосов
/ 07 августа 2012

Вы можете попробовать отключить плагин развертывания перед настройкой груза:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>2.5</version>
    <configuration>
        <skip>true</skip>
    </configuration>
</plugin>
2 голосов
/ 29 июня 2011

Вы должны привязать груз к pre-integration-test вместо deploy - тогда ваши отказоустойчивые тесты могут быть запущены для развернутого файла войны во время фазы integration-test. Вы будете запускать тесты, используя mvn verify.

1 голос
/ 10 июня 2016

Вы можете отключить цель развертывания по умолчанию с помощью maven-deploy-plugin для идентификатора выполнения default-deploy. Старый поток, я положил его здесь на случай, если кто-то.

<plugin>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>2.7</version>
    <executions>
        <execution>
            <id>default-deploy</id>
            <phase>none</phase>
        </execution>
    </executions>
</plugin>
...