Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to deploy WAR with Maven to Tomcat?

Tags:

I use the Maven with Eclipse. Is possible build the project and then deploy built WAR file to Tomcat server?

I use Windows. I can build WAR file, and also deploy it on the server manually. But I want to deploy the WAR file automatically after build action and it doesn't work. I am novice in Maven.

Should I set something in my run configuration? I have set goals to install value.

pom.xml

<project 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/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>HelloWorld</groupId> <artifactId>HelloWorld</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>HelloWorld</name>  <properties>     <spring.version>3.2.2.RELEASE</spring.version> </properties>  <dependencies>      <!-- Java Server Pages Standard Tag Library -->     <dependency>         <groupId>jstl</groupId>         <artifactId>jstl</artifactId>         <version>1.2</version>     </dependency>       <!-- Spring 3 dependencies -->     <dependency>         <groupId>org.springframework</groupId>         <artifactId>spring-core</artifactId>         <version>${spring.version}</version>     </dependency>      <dependency>         <groupId>org.springframework</groupId>         <artifactId>spring-beans</artifactId>         <version>${spring.version}</version>     </dependency>      <dependency>         <groupId>org.springframework</groupId>         <artifactId>spring-context</artifactId>         <version>${spring.version}</version>     </dependency>      <dependency>         <groupId>org.springframework</groupId>         <artifactId>spring-web</artifactId>         <version>${spring.version}</version>     </dependency>      <dependency>         <groupId>org.springframework</groupId>         <artifactId>spring-webmvc</artifactId>         <version>${spring.version}</version>     </dependency> </dependencies>  <build>     <directory>${project.basedir}/target</directory>     <plugins>         <plugin>             <groupId>org.apache.maven.plugins</groupId>             <artifactId>maven-compiler-plugin</artifactId>             <version>2.3.2</version>             <configuration>                 <source>${java-version}</source>                 <target>${java-version}</target>             </configuration>         </plugin>         <plugin>             <groupId>org.apache.maven.plugins</groupId>             <artifactId>maven-dependency-plugin</artifactId>             <executions>                 <execution>                     <id>install</id>                     <phase>install</phase>                     <goals>                         <goal>sources</goal>                     </goals>                 </execution>             </executions>         </plugin>         <!-- Maven Tomcat Plugin -->         <plugin>             <groupId>org.codehaus.mojo</groupId>             <artifactId>tomcat-maven-plugin</artifactId>             <configuration>                 <server>Apache_Tomcat_7_x86</server>                 <warFile>${project.build.directory}/HelloWorld-0.0.1-SNAPSHOT.war</warFile>             </configuration>         </plugin>         <plugin>             <groupId>org.apache.maven.plugins</groupId>             <artifactId>maven-war-plugin</artifactId>             <version>2.3</version>             <configuration>                 <packagingExcludes>WEB-INF/web.xml</packagingExcludes>             </configuration>         </plugin>     </plugins> </build> 

Furthermore I changed settings.xml file in path ~/.m2/settings.xml.

settings.xml

  <servers>       <server>         <id>Apache_Tomcat_7_x86</id>         <username>admin</username>         <password>admin</password>       </server>   </servers> 
like image 603
misco Avatar asked Apr 05 '13 00:04

misco


1 Answers

Meanwhile I resolved it. There were a few issues.

Firstly I set Goal in the Eclipse run configuration to tomcat:deploy.

And I changed pom.xml following

<plugin>   <groupId>org.codehaus.mojo</groupId>   <artifactId>tomcat-maven-plugin</artifactId>   <configuration>     <url>http://localhost:8080/manager/text</url>     <server>Apache_Tomcat_7_x86</server>     <path>/HelloWorld</path>   </configuration> </plugin> 

URL in configuration depends on Tomcat version. For me works text, for others works html on end of URL. And of course, in tomcat-users.xml must be set role manager-script or manager-gui.

Maybe it helps to others.

like image 186
misco Avatar answered Sep 25 '22 05:09

misco