When using Maven with the EJB 3.1 Embeddable API and Embedded GlassFish Server, you cannot use the features of the Maven plug-in. You must start and stop Embedded GlassFish Server manually or programmatically outside of Maven.
This example shows a POM file for configuring Maven to use the EJB 3.1 Embeddable API with Embedded GlassFish Server.
<!-- Line breaks in the following element are for readability purposes only --> <project 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>org.glassfish</groupId> <artifactId>maven-glassfish-plugin-tester</artifactId> <version>3.0-74b</version> <name>Maven test</name> <dependencies> <dependency> <groupId>org.glassfish.extras</groupId> <artifactId>glassfish-embedded-all</artifactId> <version>3.0</version> </dependency> <!-- The javaee-api is stripped of any code and is just used to compile your application. The scope provided in Maven means that it is used for compiling, but is also available when testing. For this reason, the javaee-api needs to be below the embedded Glassfish dependency. The javaee-api can actually be omitted when the embedded Glassfish dependency is included, but to keep your project Java-EE 6 rather than GlassFish 3, specification is important. --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>6.0</version> <scope>provided</scope> </dependency> </dependencies> <pluginRepositories> <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> </project>