Maven
This is version . It is not the current version, and thus it cannot be edited.
Back to current version   Restore this version

Maven ist ein Build-System für komplexe Projekte.

Artifact manuell installieren#

mvn install:install-file -DgroupId=com.intersult -DartifactId=com.intersult.skin -Dversion=1.0-SNAPSHOT -DgeneratePom=true -Dfile=com.intersult.skin-1.0-SNAPSHOT.jar -Dpackaging=jar

Artifact deployen#

mvn deploy:deploy-file -DgroupId=com.intersult -DartifactId=com.intersult.skin -Dversion=1.0 -Dpackaging=jar -Dfile=target/com.intersult.skin-1.0-SNAPSHOT.jar -Durl=file://W:\deploy\repository.war -DrepositoryId=intersult-repository

Falls ein spezieller Wagon verwendet werden soll (Transportschicht für das Protocol-Handling), kann dieser und die Dependencies in <maven-home>/lib abgelegt werden (z.B. maven-svn-wagon-1.4.jar, svnkit-1.3.5.jar).

Glassfish deployen#

Achtung: Die Intersult hat das Maven Glassfish Plugin erweitert. Command line:
mvn glassfish:deploy
Plugin config:
<plugin>
	<groupId>org.glassfish.maven.plugin</groupId>
	<artifactId>maven-glassfish-plugin</artifactId>
	<version>2.1</version>
	<configuration>
		<domain>
			<name>domain1</name>
			<adminPort>4848</adminPort>
		</domain>
		<glassfishDirectory>${env.GLASSFISH_HOME}</glassfishDirectory>
		<user>admin</user>
		<adminPassword>adminadmin</adminPassword>
		<echo>true</echo>
	</configuration>
</plugin>

JBoss deployen#

Command line:
mvn jboss:redeploy
Plugin config:
<plugin>
	<groupId>org.codehaus.mojo</groupId>
	<artifactId>jboss-maven-plugin</artifactId>
	<version>1.4</version>
	<configuration>
		<hostName>localhost</hostName>
		<port>8080</port>
		<serverName>default</serverName>
		<fileNames>
			<fileName>${project.build.directory}/${project.build.finalName}.${project.packaging}</fileName>
		</fileNames>
	</configuration>
</plugin>

Exec plugin#

		<pluginRepository>
			<id>codehaus snapshot repository</id>
			<url>http://snapshots.repository.codehaus.org/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
		</pluginRepository>
                ...
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>exec-maven-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>exec</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<executable>${env.GLASSFISH_HOME}/bin/asadmin</executable>
					<arguments>
						<argument>deploy</argument>
						<argument>target/test.war</argument>
					</arguments>
				</configuration>
			</plugin>
			
mvn exec:exec

Manual ant task#

	<profiles>
		<profile>
			<id>echo</id>
			<activation>
				<property>
					<name>command</name>
					<value>deploy</value>
				</property>
			</activation>
			<build>
				<defaultGoal>antrun:run</defaultGoal>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-antrun-plugin</artifactId>
						<version>1.3</version>
						<configuration>
							<tasks>
							    <echo>Hello World!</echo>
							</tasks>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
	
mvn -Dcommand=echo

Debugging#

Maven Prozesse können debuggt werden, indem statt mvn der Befehl mvnDebug verwendet wird. Maven wartet dann auf Port 8000 auf ein Debugger Attachement.

Tests können so nicht debuggt werden, da für sie eine eigene VM erzeugt wird. Dies kann verhindert werden, indem das Surefire-Plugin konfiguriert wird:

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.10</version>
				<configuration>
 					<forkMode>never</forkMode>
				</configuration>
			</plugin>

Allerdings können sich dann Probleme mit dem Classpath ergeben.

Profile unter Hudson aktivieren#

   <profile>
     <id>hudson</id>
     <activation>
         <property>
             <name>BUILD_NUMBER</name>
         </property>
     </activation>
     ...
   </profile>