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

Я пытался использовать Cargo-Maven2-плагин для автоматизации развертывания моего модуля WAR для тестирования.

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

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

http://cargo.codehaus.org/Maven2+plugin

груз: старт Начать контейнер. Эта задача может дополнительно установить и настроить контейнер; он также может по желанию развертывать развертываемые файлы (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" из другой оболочки, чтобы развернуть эту войну.

1 ответ

ОК. Здесь происходит несколько вещей:

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

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

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

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

Другие вопросы по тегам