2010-05-23 63 views
9

Estoy usando Eclipse 3.5, Maven 2, m2eclipse y Tomcat 6. Por lo tanto, creo el proyecto Maven para archetype webapp. Esta es pom.xml:Despliegue de proyecto, creado con Eclipse y Maven, a Tomcat

<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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.itransition</groupId> 
    <artifactId>hello</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>hello Maven Webapp</name> 
    <url>http://maven.apache.org</url> 

    <!-- tools.jar dependency -->  
    <profiles> 
     <profile> 
      <id>default-tools.jar</id> 
      <activation> 
       <property> 
        <name>java.vendor</name> 
        <value>Sun Microsystems Inc.</value> 
       </property> 
      </activation> 
      <dependencies> 
       <dependency> 
        <groupId>com.sun</groupId> 
        <artifactId>tools</artifactId> 
        <version>1.5.0</version> 
        <scope>system</scope> 
        <systemPath>${java.home}/../lib/tools.jar</systemPath> 
       </dependency> 
      </dependencies> 
     </profile> 
    </profiles> 
    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.struts</groupId> 
      <artifactId>struts2-core</artifactId> 
      <version>2.1.8.1</version> 
     </dependency> 
    </dependencies> 

    <build> 
     <finalName>hello</finalName> 
    </build> 
</project> 

Así entonces quiero desplegar mi aplicación web de Tomcat. ¿Lo que necesito hacer? La instalación de Maven no ayuda. Pero si creo guerra mediante la instalación de Maven, puedo importarla para eclipsarla e implementarla en Tomcat mediante "Agregar y eliminar ..." en la ventana emergente del servidor.

+1

Por cierto, ¿qué diablos es este perfil de default-tools.jar ?! –

Respuesta

6

Este problema se puede resolver utilizando el complemento Tomcat para Maven. Su página de inicio tiene una extensa documentación relacionada con el configuration del complemento y deployment of war files.

+1

Disculpa por una pregunta estúpida, pero ¿cómo puedo obtener este complemento? No encuentro ninguna página de descarga. – user348267

+3

No hay problema. Cuando agrega la configuración del complemento a su archivo pom.xml, Maven descargará el complemento y sus dependencias automáticamente. – pkainulainen

+0

así que añadir a pom.xml org.codehaus.mojo Tomcat-maven-plugin de http: // localhost: 8080/gerente a continuación, ejecute "Tomcat mvn: desplegar", y obtener [INFO] implementación de la guerra a la dirección http: // localhost: 8080/hola [INFO] [ERROR] BUILD ERROR [INFO] [INFO] No se puede invocar el administrador de Tomcat Error incrustado: El servidor devolvió el código de respuesta HTTP: 403 para la URL: http: // localhost: 8080/manager/deploy? Path =% 2Fhello & war = – user348267

3

So then i want to deploy my web application to Tomcat. What I need to do? Maven install don't help. But if I create war by Maven install, i can import it to eclipse and deploy it to Tomcat by "Add and remove..." in server popup.

Dado que está utilizando m2eclipse, mi recomendación sería implementar su aplicación utilizando la WTP. Suponiendo que ha la integración Maven para WTP función instalado (de m2eclipse extras) y Tomcat configurado como servidor, simplemente haga clic con en su proyecto y seleccione Ejecutar> Ejecutar en servidor ...

Otra opción sería debe ejecutar su aplicación en Jetty (sí, sé que esto no es lo que está pidiendo, pero esta es una opción muy válida si no desea usar la WTP). Añadir el siguiente fragmento de su pom:

<project> 
    ... 
    <build> 
    ... 
    <plugins> 
     ... 
     <plugin> 
     <groupId>org.mortbay.jetty</groupId> 
     <artifactId>maven-jetty-plugin</artifactId> 
     <version>6.1.10</version> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

Y sólo tiene que ejecutar mvn jetty:run iniciar un servidor embarcadero incorporado y desplegar su aplicación en él.

El mismo se puede conseguir por Tomcat mediante la Tomcat Maven Plugin pero a menos que desee implementar en un Tomcat distancia (véase la página Usage), no veo ninguna ventaja sobre el Maven Jetty Plugin.

Durante el desarrollo, utilizaría la primera opción (implementar con la WTP).

+0

Cuando despliegue la aplicación con WTP, tengo un error 404 en las páginas. – user348267

+0

@fatkh Tiene otro problema en alguna parte o está haciendo algo mal, pero le garantizo que funciona para el resto de nosotros. –

4

Descubrí que la URL del administrador de tomcat (estoy usando Tomcat 6.0) es http://localhost:8080/manager/html, mientras que el valor predeterminado utilizado por el complemento mvn tomcat se detiene en el administrador en la URL. Añadir la URL especificada a su pom.xml como un parámetro de configuración - (ver este URL para más detalles http://mojo.codehaus.org/tomcat-maven-plugin/configuration.html) y listo funciona ...

Con Tomcat7, descubrí que necesitaba para establecer la dirección URL como http://localhost:8080/manager/htmly usa un nombre de usuario con un rol manager-gui. Sin embargo, el uso de un nombre de usuario con el rol de administrador-guión, con la URL http://localhost:8080/manager/text también funciona y es más apropiado. La función de administrador de scripts es la forma diseñada para los scripts ant/maven.

0

Si desea que su archivo war creado por maven, debe haber desplegar en el servidor Tomcat directamente tomcat deployment configuration entonces este puede ayudar.

Cuestiones relacionadas