Herausforderung#

Das Glassfish-Plugin hat viele Parameter, deshalb soll es im Parent pom.xml definiert werden. Das Plugin erlaubt aber keine Steuerung, ob ein Projekt deployed werden soll oder nicht.

Lösung#

Die Intersult hat das Glassfish-Plugin erweitert.
    <project>
	<build>
            <plugins>
      		<plugin>
				<groupId>com.intersult</groupId>
				<artifactId>maven-glassfish-plugin</artifactId>
				<version>1.1-SNAPSHOT</version>
				<configuration>
					<glassfishDirectory>${env.GLASSFISH_HOME}</glassfishDirectory>
					<user>admin</user>
					<adminPassword>adminadmin</adminPassword>
					<autoCreate>false</autoCreate>
					<debug>true</debug>
					<echo>true</echo>
					<terse>true</terse>
					<skip>true</skip>
					<domain>
						<name>domain1</name>
						<adminPort>4848</adminPort>
						<httpPort>8080</httpPort>
						<httpsPort>8443</httpsPort>
						<iiopPort>3700</iiopPort>
						<jmsPort>7676</jmsPort>
						<reuse>true</reuse>
					</domain>
					<components>
						<component>
							<name>${project.artifactId}</name>
							<artifact>${project.build.directory}/${project.build.finalName}.${packaging}</artifact>
						</component>
					</components>
				</configuration>
			</plugin>
			...
		</plugins>
	</build>
        ...
	<pluginRepositories>
		<pluginRepository>
			<id>intersult-repo</id>
			<name>Intersult Repository</name>
			<url>http://intersult.com/public/maven</url>
		</pluginRepository>
		...
	</pluginRepositories>
    </project>

Der zusätzliche Parameter <skip>true</skip> gibt an, dass das Plugin nicht selbst bei Angabe vom Goal glassfish:deploy nicht ausgeführt wird.

in WAR-Projekten oder EAR-Projekten kann dann kurzerhand das Goal aktiviert werden:

                ...
      		<plugin>
			<groupId>com.intersult</groupId>
			<artifactId>maven-glassfish-plugin</artifactId>
			<configuration>
				<skip>false</skip>
			</configuration>
		</plugin>
		...

Feedback#

Wissen Sie eine einfachere Lösung? Nehmen Sie formlos Kontakt mit uns auf.