Maven – umieszczanie archiwum WAR w instancji kontenera Tomcat

Manager projektu Maven to narzędzie, które możemy rozszerzać za pomocą pluginów. Dzisiaj przedstawię dodatek umożliwiający automatyczne budowanie, testowanie i umieszczanie aplikacji w kontenerze Apache Tomcat.

W tym poście posłużyłem się aplikacją, która została stworzona w poście SPRING MVC – KONFIGURACJA I URUCHOMIENIE PIERWSZEJ APLIKACJI.

Konfiguracja kontenera

Na początku przystępujemy do konfiguracji kontenera Tomcat. Pierwszym krokiem jest utworzenie odpowiedniego użytkownika. W tym celu musimy edytować plik tomcat-users.xml  dodając poniższy kod w sekcji tomcat-users .

<user username="demo" password="demo" roles="manager-script"/>

Konfiguracja Maven

Kolejnym  krokiem konfiguracyjnym jest konfiguracja managera Maven. Polega ona na dodaniu danych użytkownika, którego utworzyliśmy w poprzednim kroku, do pliku znajdującego się w ścieżce <lokalizacja instalacji maven>/conf/settings.xml .

<server>
	<id>DemoServer</id>
	<username>demo</username>
	<password>demo</password>
</server>

W sekcjach <username>  i <password>  podajemy takie same dane, jakie umieściliśmy w pliku tomcat-users.xml . Nazwa wpisana w sekcji <id>  będzie potrzebna do konfiguracji pluginu Maven.

Plugin Maven

Ostatnią rzeczą, jaką musimy zrobić jest konfiguracja pluginu w naszym projekcie. W tym celu musimy edytować plik pom.xml. Poniższy kod należy dodać w sekcji <plugins> .

<plugin>
	<groupId>org.apache.tomcat.maven</groupId>
	<artifactId>tomcat7-maven-plugin</artifactId>
	<version>2.2</version>
		<configuration>
			<warFile>target/first-application.war</warFile>
			<hostName>localhost</hostName>
			<aliases>
				<aliase>localhost</aliase>
			</aliases>
			<url>https://localhost:8443/manager/text</url>
			<server>DemoServer</server>
			<path>/first-application</path>
			<username>demo</username>
			<password>demo</password>
			<update>true</update>
	</configuration>
</plugin>

Powinniśmy dokładnie przyjrzeć się sekcji konfiguracyjnej.

warFile Ścieżka do pliku WAR, który chcemy umieścić w kontenerze.
hostname Nazwa hosta.
aliases Lista aliasów dla nazwy hosta. W przypadku, gdy dwa adresy DNS wskazują na ten sam host powinniśmy podać oba.
url Pełna ścieżka do managera kontenera Tomcat.
server Id serwera z pliku settings.xml . Id zostanie użyte przy uwierzytelnianiu pluginu przez Tomcat Manager.
path Ścieżka do kontekstu aplikacji, którą chcemy zbudować.
username Nazwa użytkownika Tomcat.
password Hasło użytkownika Tomcat.
update Flaga określająca czy istniejąca już w kontenerze aplikacja powinna zostać zaktualizowana.

W powyższym przykładzie użyłem nazwy pliku first-application.war, ponieważ skonfigurowałem budowanie projektu tak, aby plik wynikowy nosił taką samą nazwę jak artefakt. W celu takiej samej konfiguracji w sekcji <build>  dodaj linijkę

<finalName>${project.artifactId}</finalName>

Budowanie aplikacji

Jeżeli wszystko zostało skonfigurowane możemy przystąpić do budowania aplikacji. W tym celu za pomocą linii komend w folderze, w którym znajduje się plik pom.xml wydajemy polecenie:

mvn clean tomcat7:deploy

Aby proces budowania został poprawnie zakończony wcześniej należy uruchomić kontener Tomcat.

Poprawne zbudowanie aplikacji - plugin

Test

Test naszej aplikacji będzie polegał na wejściu na adres https://localhost:8443/first-application. Na ekranie powinniśmy zobaczyć napis Your first Spring application.

Spróbujmy zmienić wyświetlany napis. Najpierw edytujmy plik HelloController.java

@RequestMapping("/")
public String index() {
    return "Next deploy done";
}

następnie ponownie zbudujmy aplikację:

mvn clean tomcat7:deploy

Teraz wejście na adres adres https://localhost:8443/first-application powinno zakończyć się wyświetleniem napisu Next deploy done.

Przydatne linki

  1. Oficjalna dokumentacja pluginu – tomcat.apache.org/maven-plugin-trunk/tomcat7-maven-plugin/deploy-mojo.html
  2. Opis ról managera Tomcat – tomcat.apache.org/tomcat-7.0-doc/manager-howto.html#Configuring_Manager_Application_Access

You may also like

Comments