2010-02-10 13 views
8

Me parece que no puede conseguir el plugin de Maven Glassfish trabajando para la vida de mí:Maven Embedded plugin de Glassfish

<project> 
    ... 
    <pluginRepositories> 
    <pluginRepository> 
     <id>glassfish-repository</id> 
     <name>Java.net Repository for Glassfish</name> 
     <url>http://download.java.net/maven/glassfish</url> 
     <layout>default</layout> 
     <snapshots> 
     <enabled>true</enabled> 
     <updatePolicy>never</updatePolicy> 
     </snapshots> 
    </pluginRepository> 
    </pluginRepositories> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.glassfish</groupId> 
     <artifactId>maven-embedded-glassfish-plugin</artifactId> 
     <version>3.0</version> 

     <configuration> 
      <goalPrefix>glassfish</goalPrefix> 
      <app>${artifactId}.war</app> 
      <contextRoot>${context.root}</contextRoot> 
      <port>${http.port}</port> 
     </configuration> 
     </plugin> 
     ... 
    </plugins> 
    </build> 
</project> 

Cuando corro mvn glassfish:run, que está buscando un plugin diferente y no lo encuentra:

[INFO] The plugin 'org.apache.maven.plugins:maven-glassfish-plugin' does not exist or no valid version could be found 

¿Alguna idea?

Respuesta

13

No está invocando el complemento correcto. Debe ser:

mvn embedded-glassfish:run 

En realidad, lo estoy usando como esto: (con el mismo repositorio de plugins que declaré):

<plugins> 
    <plugin> 
    <groupId>org.glassfish</groupId> 
    <artifactId>maven-embedded-glassfish-plugin</artifactId> 
    <version>3.0</version> 
    <configuration> 
     <goalPrefix>glassfish</goalPrefix> 
     <app>target/test.war</app> 
     <port>8080</port> 
     <contextRoot>test</contextRoot> 
    </configuration> 
    <executions> 
     <execution> 
     <phase>package</phase> 
     <goals> 
     <goal>run</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
</plugins> 

Actualización: Por si acaso, el nombre completo de este plug-in sería:

mvn org.glassfish:maven-embedded-glassfish-plugin:3.0:run 

Pero usando el nombre corto que funciona para mí.

+0

Pascal, gracias por su respuesta, pero cuando intento hacer el comando anterior, sigo sin obtener el complemento no encontrado: [INFO] El complemento 'org.apache.maven.plugins: maven-embedded-glassfish-plugin 'no existe o no se pudo encontrar ninguna versión válida –

+0

@Walter Por favor, publique todo su pom porque esto funciona para mí. –

+1

Pascal: disculpe la respuesta tardía, pero finalmente migré a Glassfish ya que es uno de los pocos contenedores compatibles con Java EE 6. Esta configuración funciona bien. Tuve que instalar manualmente los artefactos para que funcionen, pero ahora se ejecuta. –

0

Este problema es el resultado del hecho de que existen 2 plugins de maven-glassfish diferentes con el mismo nombre. Trate de usar

mvn org.glassfish:maven-glassfish-plugin:run 

explanatation detallada de este problema se puede encontrar here.

+1

Creo que esta entrada del blog no está actualizado, el plug-in incorporado es experta-embedded-glassfish-plugin, no maven- Glassfish-plugin. Ver http://blogs.sun.com/sirajg/entry/using_maven_plugin_for_v3 –

+0

@Pascal Sí, tienes razón. Esta versión parece estar rota. – cetnar

3

@Walter White (no puedo/no sé cómo responder a tu comentario, así que estoy respondiendo en su lugar): He leído que WARs dispersos son not fully supported by embedded GlassFish v3.

Personalmente estoy esperando ansiosamente v3.1 con el soporte de Timer y MessageDriven. Afortunadamente también se incluirá soporte de servicio web. ¿Alguien tiene alguna pista sobre una ETA para v3.1?

PS: mvn org.glassfish:maven-embedded-glassfish-plugin:3.0:run funciona para mí. Lo conectará en un ciclo de vida de prueba de integración maven adecuado ahora.

0

ver en github ejemplo de trabajo

paquete

mvn incrustado-glassfish: ejecutar

<dependencies> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-web-api</artifactId> 
     <version>7.0</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 

     <plugin> 
      <groupId>org.glassfish.embedded</groupId> 
      <artifactId>maven-embedded-glassfish-plugin</artifactId> 
      <version>3.1.2.2</version> 
      <configuration> 
       <app>target/${project.artifactId}-${project.version}</app> 
       <port>8080</port> 
       <contextRoot>${project.artifactId}</contextRoot> 
      </configuration> 
      <dependencies> 
       <dependency> 
        <groupId>org.glassfish.main</groupId> 
        <artifactId>simple-glassfish-api</artifactId> 
        <version>4.0-b79</version> 
       </dependency> 
       <dependency> 
        <groupId>org.glassfish.main.extras</groupId> 
        <artifactId>glassfish-embedded-all</artifactId> 
        <version>4.0-b83</version> 
       </dependency> 
      </dependencies> 
     </plugin> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
       <encoding>UTF-8</encoding> 
      </configuration> 
     </plugin> 
    </plugins> 

</build> 
<pluginRepositories> 
    <pluginRepository> 
     <id>maven.java.net</id> 
     <name>Java.net Repository for Maven</name> 
     <url>https://maven.java.net/content/groups/promoted/</url> 
    </pluginRepository> 
    <pluginRepository> 
     <id>maven2-repository.dev.java.net</id> 
     <name>Java.net Repository for Maven</name> 
     <url>http://download.java.net/maven/glassfish/</url> 
    </pluginRepository> 
</pluginRepositories>