Запустите веб-контейнер, затем разверните войну с грузовым плагином maven2.

Я попытался использовать cargo-maven2-plugin для автоматизации развертывания модуля WAR для тестирования.

Интересно, как я могу запустить сервер tomcat (предварительно установленный на моей машине) и автоматически развернуть мою войну на запущенном сервере?

В документации проекта Cargo упоминается, что цель cargo:start может опционально развертывать развертываемые компоненты:

http://cargo.codehaus.org/Maven2+plugin#Maven2plugin-gettingstarted

cargo:start Запустить контейнер. Эта задача может дополнительно установить и настроить контейнер; он также может дополнительно развертывать на нем развертываемые компоненты (WAR, EAR и т. д.).

Тем не менее, я понятия не имею, как включить эту опцию, чтобы она развертывала развертываемые компоненты при запуске cargo:start.

Вот моя текущая конфигурация pom:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.cargo</groupId>
            <artifactId>cargo-maven2-plugin</artifactId>
            <version>1.0</version>
            <configuration>
                <wait>true</wait>
                <container>
                    <containerId>tomcat6x</containerId>
                    <home>${tomcat.home}</home>
                </container>
                <configuration>
                    <type>standalone</type>
                    <home>target/tomcat6x</home>
                </configuration>
                <deployer>
                    <deployables>
                        <deployable>
                            <groupId>${project.groupId}</groupId>
                            <artifactId>my-war</artifactId>
                            <type>war</type>
                        </deployable>
                    </deployables>
                </deployer>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>my-war</artifactId>
        <version>${project.version}</version>
        <type>war</type>
    </dependency>
</dependencies>

Когда я запускаю «mvn cargo: start», сервер tomcat будет запущен, однако развертываемый файл my-war не будет развернут. И мне нужно запустить «mvn cargo:deploy» из другой оболочки, чтобы развернуть эту войну.


person nybon    schedule 22.11.2010    source источник


Ответы (1)


OK -- Здесь происходит несколько вещей:

1) Вы упомянули, что сервер Tomcat предварительно установлен на машине, но у вас есть каталог, указанный в вашем целевом каталоге. Это не очень хорошая идея, так как она будет уничтожена после mvn clean.

2) Для предустановленного Tomcat вы не устанавливаете type в existing внутри конфигурации развертывателя.

3) Где ваше определение контекста? У вас есть файл фрагмента контекста или вы используете файл tomcat.xml внутри каталога WEB-INF в WAR?

Суть в том, что комбинация ошибок конфигурации сдерживает вас. Опубликуйте обновленную конфигурацию Maven и дополнительные сведения об определении контекста XML, и я смогу помочь вам в дальнейшем.

person HDave    schedule 08.02.2011