2010-02-10 9 views
8

Ich kann die Maven Glassfish-Plugin für das Leben von mir zu bekommen scheinen arbeiten:Maven Embedded Glassfish-Plugin

<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> 

Als ich mvn glassfish:run laufen, ist es für ein anderes Plugin suchen und es nicht finden können:

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

Irgendwelche Ideen?

Antwort

13

Sie rufen nicht das richtige Plugin auf. Es sollte sein:

mvn embedded-glassfish:run 

Eigentlich benutze ich es wie folgt aus: (mit dem gleichen Plugin-Repository erklärt Ihnen):

<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> 

Update: Nur für den Fall, den vollständig qualifizierten Namen von würde dies Plugin sein: für mich

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

Aber mit dem Kurznamen funktioniert.

+0

Pascal, danke für deine Antwort, aber wenn ich diesen Befehl oben mache, bekomme ich immer noch das Plugin nicht gefunden: [INFO] Das Plugin 'org.apache.maven.plugins: maven-embedded-glassfish-plugin 'existiert nicht oder es konnte keine gültige Version gefunden werden –

+0

@Walter Bitte posten Sie Ihre gesamte Pom, weil dies für mich funktioniert. –

+1

Pascal - Entschuldigung für die späte Antwort, aber ich bin schließlich zu Glassfish gewandert, da es einer der wenigen Java EE 6-kompatiblen Container ist. Diese Konfiguration funktioniert gut. Ich musste die Artefakte manuell installieren, damit sie funktionieren, aber es läuft jetzt. –

0

Dieses Problem Ergebnis aus der Tatsache, dass 2 verschiedene Maven-Glassfish-Plugins mit dem gleichen Namen existieren. Versuchen

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

Detaillierte explanatation dieses Problems verwenden Sie here finden.

+1

Ich denke, dass diese Blog-Post veraltet ist, das eingebettete Plugin Maven-embedded-Glassfish-Plugin, nicht maven- Glassfisch-Plugin. Siehe http://blogs.sun.com/sirajg/entry/using_maven_plugin_for_v3 –

+0

@Pascal Ja, Sie haben Recht. Diese Version scheint kaputt zu sein. – cetnar

3

@Walter White (kann/weiß nicht, wie ich auf deinen Kommentar antworten soll, damit ich antworte): Ich habe gelesen, dass verstreute WAR's not fully supported by embedded GlassFish v3 sind.

Persönlich erwarte ich v3.1 mit Timer und MessageDriven Unterstützung. Hoffentlich wird auch Web-Service-Unterstützung enthalten sein. Hat jemand zufällig einen Hinweis auf eine ETA für v3.1?

PS: mvn org.glassfish:maven-embedded-glassfish-plugin:3.0:run funktioniert für mich. Wird es jetzt in einen richtigen Maven-Integration-Test-Lebenszyklus bringen.

0

siehe Github Beispiel

mvn Paket eingebettet-Glasfischen arbeiten: run

<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>