Deploy maven war-project to tomcat
With maven it’s possible to deploy the current version of your webapplication (<packaging>war</packaging>) with one command!
mvn clean package tomcat:deploy-only
All we have to to is to define the tomcat-maven-plugin:
... <packaging>war</packaging> ... <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <url>http://server[:port]/manager</url> <path>/${project.build.finalName}</path> <update>true</update> <server>tomcat_xyz</server> </configuration> </plugin>
You have to define username/password in your settings.xml:
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <servers> <server> <id>tomcat_xyz</id> <username>admin</username> <password>123geheim</password> </server> </servers> </settings>
Check the tomcat-user.xml:
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="manager"/> <role rolename="admin"/> <user username="admin" password="123geheim" roles="admin,manager"/> </tomcat-users>
If you run the maven command you will see:
[INFO] [tomcat:deploy-only {execution: default-cli}] [INFO] Deploying war to http://server:8080/foobar-1.0.0-SNAPSHOT-B20090710 [INFO] OK - Deployed application at context path /foobar-1.0.0-SNAPSHOT-B20090710 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------
To get the version and a buildnumber in the context-path you must define the finalName and you must use a „buildnumber-plugin“, e.g. buildnumber-maven-plugin or maven-timestamp-plugin:
<build> <finalName>foobar-${project.version}-B${buildNumber}</finalName> </build>
<plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>buildnumber-maven-plugin</artifactId> <executions> <execution> <id>create-buildnumber</id> <phase>validate</phase> <goals> <goal>create</goal> </goals> </execution> </executions> <configuration> <doUpdate>false</doUpdate> <doCheck>false</doCheck> <format>{0,date,yyyyMMdd}</format> <items> <item>timestamp</item> </items> <buildNumberPropertyName>buildNumber</buildNumberPropertyName> </configuration> </plugin>
<plugin> <groupId>com.keyboardsamurais.maven</groupId> <artifactId>maven-timestamp-plugin</artifactId> <executions> <execution> <id>create-buildnumber</id> <goals> <goal>create</goal> </goals> <configuration> <propertyName>buildNumber</propertyName> <timestampPattern>yyyyMMdd</timestampPattern> </configuration> </execution> </executions> </plugin> </plugins>
Antworten
Du musst angemeldet sein, um einen Kommentar abzugeben.