<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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>com.homeaway.devtools.jenkins</groupId>
	<artifactId>jenkins-spock</artifactId>
	<packaging>jar</packaging>
	<version>2.1.4</version> <!-- http://semver.org -->

	<name>Jenkins pipeline support for Spock</name>
	<description>Test Jenkins pipeline code with Spock</description>
	<url>https://github.com/homeaway/jenkins-spock</url>

	<licenses>
		<license>
			<name>The Apache Software License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<developers>
		<developer>
			<id>awitt</id>
			<name>Austin Witt</name>
			<email>awitt@vrbo.com</email>
			<organization>HomeAway</organization>
			<timezone>-6</timezone>
		</developer>
	</developers>

	<scm>
		<url>https://github.com/homeaway/jenkins-spock</url>
		<connection>scm:git:git@github.com:homeaway/jenkins-spock.git</connection>
		<developerConnection>scm:git:git@github.com:homeaway/jenkins-spock.git</developerConnection>
		<tag>jenkins-spock-2.1.4</tag>
	</scm>
	
	<repositories>
		<repository>
			<id>jenkins-releases</id>
			<name>Jenkins Releases</name>
			<url>http://repo.jenkins-ci.org/releases</url>
		</repository>
	</repositories>
	
	<distributionManagement>
		<snapshotRepository>
			<id>ossrh</id>
			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
		</snapshotRepository>
		<repository>
			<id>ossrh</id>
			<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
		</repository>
	</distributionManagement>

	<properties>
		<!-- basic maven lifecycle properties -->
		<sourceVersion>1.8</sourceVersion>
		<targetVersion>1.8</targetVersion>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

		<assembly.pluginVersion>3.1.0</assembly.pluginVersion>
		<clean.pluginVersion>3.1.0</clean.pluginVersion>
		<compiler.pluginVersion>3.8.0</compiler.pluginVersion>
		<deploy.pluginVersion>2.8.2</deploy.pluginVersion>
		<enforcer.pluginVersion>3.0.0-M2</enforcer.pluginVersion>
		<exec.pluginVersion>1.6.0</exec.pluginVersion>
		<gpg.pluginVersion>1.5</gpg.pluginVersion>
		<install.pluginVersion>2.5.2</install.pluginVersion>
		<invoker.pluginVersion>3.2.1</invoker.pluginVersion>
		<jar.pluginVersion>3.1.0</jar.pluginVersion>
		<javadoc.pluginVersion>3.0.1</javadoc.pluginVersion>
		<nexusStaging.pluginVersion>1.6.7</nexusStaging.pluginVersion>
		<release.pluginVersion>2.5.3</release.pluginVersion>
		<resources.pluginVersion>3.1.0</resources.pluginVersion>
		<scm.pluginVersion>1.11.2</scm.pluginVersion>
		<site.pluginVersion>3.7.1</site.pluginVersion>
		<source.pluginVersion>2.2.1</source.pluginVersion>
		<surefire.pluginVersion>2.22.0</surefire.pluginVersion>

		<!-- Groovy versions -->
		<groovy.core.version>2.4.11</groovy.core.version>
		<groovy.spock.version>1.1-groovy-2.4</groovy.spock.version>
		<groovy.gmaven.pluginVersion>1.6.1</groovy.gmaven.pluginVersion>

		<!-- metaprogramming & testing versions -->
		<cglib.version>3.2.7</cglib.version>
		<objenesis.version>2.6</objenesis.version>

		<!-- jenkins software versions -->
		<jenkins.version>2.102</jenkins.version>
		<jenkins.workflow.step.version>2.10</jenkins.workflow.step.version>
		<jenkins.workflow.cps.version>2.36</jenkins.workflow.cps.version>
		<jenkins.symbol.version>1.10</jenkins.symbol.version>
		<jenkins.servlet.version>3.1.0</jenkins.servlet.version>

		<!-- test settings -->
		<slf4j.version>1.7.25</slf4j.version>
		<junit.version>4.12</junit.version>
		
		<logback.configration>logback-test.xml</logback.configration>
		<logdir>${project.build.directory}/log</logdir>
		<test.loglevel>WARN</test.loglevel>
		<log.logback.version>1.2.3</log.logback.version>
		<log.slf4j.version>1.7.25</log.slf4j.version>

	</properties>

	<profiles>
		<profile>
			<id>it</id>
			<build>
				<pluginManagement>
					<plugins>
						<plugin>
							<groupId>org.apache.maven.plugins</groupId>
							<artifactId>maven-invoker-plugin</artifactId>
							<version>${invoker.pluginVersion}</version>
							<executions>
								<execution>
									<id>fixup-integration-test-projects</id>
									<phase>process-resources</phase>
									<goals>
										<goal>run</goal>
									</goals>
									<configuration>
										<projectsDirectory>examples</projectsDirectory>
										<pomIncludes>
											<pomInclude>helper-script/pom.xml</pomInclude>
											<pomInclude>shared-library/pom.xml</pomInclude>
											<pomInclude>whole-pipeline/pom.xml</pomInclude>
										</pomIncludes>
										<cloneProjectsTo>${project.build.directory}/test-projects</cloneProjectsTo>
										<streamLogs>true</streamLogs>
										<goals>versions:update-properties</goals>
										<properties>
											<allowSnapshots>true</allowSnapshots>
											<includes>${project.groupId}:${project.artifactId}</includes>
											<includeProperties>jenkins-spock.version</includeProperties>
											<newVersion>${project.version}</newVersion>
											<generateBackupPoms>false</generateBackupPoms>
										</properties>
									</configuration>
								</execution>
								<execution>
									<id>run-integration-test-projects</id>
									<goals>
										<goal>install</goal>
										<goal>integration-test</goal>
										<goal>verify</goal>
									</goals>
									<configuration>
										<projectsDirectory>${project.build.directory}/test-projects</projectsDirectory>
										<localRepositoryPath>${project.build.directory}/test-projects-repo</localRepositoryPath>
										<cloneProjectsTo />
										<streamLogs>true</streamLogs>
									</configuration>
								</execution>					
							</executions>
						</plugin>
					</plugins>
				</pluginManagement>
				
				<plugins>
					
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-resources-plugin</artifactId>
					</plugin>
					
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-invoker-plugin</artifactId>
					</plugin>
				
				</plugins>
			</build>
		</profile>
		<profile>
			<id>noninteractive-gpg</id>
			<build>
				<pluginManagement>
					<plugins>
						<plugin>
							<groupId>org.apache.maven.plugins</groupId>
							<artifactId>maven-gpg-plugin</artifactId>
							<version>${gpg.pluginVersion}</version>
							<executions>
								<execution>
									<id>sign-artifacts</id>
									<configuration>
										<gpgArguments>
											<arg>--pinentry-mode</arg>
											<arg>loopback</arg>
										</gpgArguments>
									</configuration>
								</execution>
							</executions>
						</plugin>
					</plugins>
				</pluginManagement>
			</build>
		</profile>
		<profile>
			<!-- publish JavaDoc & GroovyDoc to github-pages during a maven release -->
			<id>gh-pages-javadoc</id>
			<activation>
				<property>
					<name>performRelease</name>
				</property>
			</activation>
			<build>
				<pluginManagement>
					<plugins>
						<plugin>
							<groupId>org.apache.maven.plugins</groupId>
							<artifactId>maven-scm-publish-plugin</artifactId>
							<version>1.1</version>
							<executions>
								<execution>
									<id>publish-docs</id>
									<phase>deploy</phase>
									<goals>
										<goal>publish-scm</goal>
									</goals>
									<configuration>
										<dryRun>${metadata.isPom}</dryRun>
										<checkoutDirectory>${project.build.directory}/scmpublish</checkoutDirectory>
										<checkinComment>Publishing javadoc for ${project.artifactId}:${project.version}</checkinComment>
										<content>${project.reporting.outputDirectory}/apidocs</content>
										<skipDeletedFiles>true</skipDeletedFiles>
										<pubScmUrl>${project.scm.connection}</pubScmUrl>
										<scmBranch>gh-pages</scmBranch>
									</configuration>
								</execution>
							</executions>
						</plugin>
					</plugins>
				</pluginManagement>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-scm-publish-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

	<dependencies>

		<!-- ==================== 3rd-party dependencies ==================== -->
		<dependency>
			<groupId>org.spockframework</groupId>
			<artifactId>spock-core</artifactId>
			<version>${groovy.spock.version}</version>
		</dependency>

		<dependency>
			<groupId>cglib</groupId>
			<artifactId>cglib-nodep</artifactId>
			<version>${cglib.version}</version>
		</dependency>
		<dependency>
			<groupId>org.objenesis</groupId>
			<artifactId>objenesis</artifactId>
			<version>${objenesis.version}</version>
		</dependency>

		<dependency>
			<groupId>org.reflections</groupId>
			<artifactId>reflections</artifactId>
			<version>0.9.12</version>
		</dependency>
		<dependency>
			<groupId>io.github.lukehutch</groupId>
			<artifactId>fast-classpath-scanner</artifactId>
			<version>2.8.2</version>
		</dependency>

		<dependency>
			<groupId>org.codehaus.groovy</groupId>
			<artifactId>groovy-all</artifactId>
			<version>${groovy.core.version}</version>
		</dependency>

		<!-- ==================== Logging dependencies ==================== -->

		<!-- direct all Logging via other Logging API's to slf4j -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>log4j-over-slf4j</artifactId>
			<version>${log.slf4j.version}</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
			<version>${log.slf4j.version}</version>
			<scope>runtime</scope>
		</dependency>

		<!-- direct all Logging via slf4j to logback -->
		<!-- logback-core ships with logback-classic, but we are being explicit -->
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-core</artifactId>
			<version>${log.logback.version}</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>${log.logback.version}</version>
			<scope>runtime</scope>
		</dependency>

		<!-- slf4j Logging API -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${log.slf4j.version}</version>
		</dependency>



		<!-- ==================== Test dependencies ==================== -->

		<!-- ==================== Jenkins Framework Dependencies ==================== -->
		<dependency>
			<groupId>org.jenkins-ci.main</groupId>
			<artifactId>jenkins-core</artifactId>
			<version>${jenkins.version}</version>
			<scope>provided</scope>
			<exclusions>
				<exclusion>
					<groupId>log4j</groupId>
					<artifactId>log4j</artifactId>
				</exclusion>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.jenkins-ci.plugins.workflow</groupId>
			<artifactId>workflow-step-api</artifactId>
			<version>${jenkins.workflow.step.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.jenkins-ci.plugins.workflow</groupId>
			<artifactId>workflow-cps</artifactId>
			<version>${jenkins.workflow.cps.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.jenkins-ci</groupId>
			<artifactId>symbol-annotation</artifactId>
			<version>${jenkins.symbol.version}</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>${jenkins.servlet.version}</version>
			<scope>provided</scope>
		</dependency>

		<!-- ==================== Test Framework Dependencies ==================== -->

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${junit.version}</version>
			<scope>provided</scope>
		</dependency>

		<!-- ============ Test Dependencies for testing THIS LIBRARY ============ -->

		<!-- 'node' pipeline step -->
		<dependency>
			<groupId>org.jenkins-ci.plugins.workflow</groupId>
			<artifactId>workflow-durable-task-step</artifactId>
			<version>2.17</version>
			<scope>test</scope>
		</dependency>

		<!-- 'echo' pipeline step -->
		<dependency>
			<groupId>org.jenkins-ci.plugins.workflow</groupId>
			<artifactId>workflow-basic-steps</artifactId>
			<version>2.6</version>
			<scope>test</scope>
		</dependency>

		<!-- 'docker' global variable -->
		<dependency>
			<groupId>org.jenkins-ci.plugins</groupId>
			<artifactId>docker-workflow</artifactId>
			<version>1.14</version>
			<scope>test</scope>
		</dependency>

		<!-- 'stage' step -->
		<dependency>
			<groupId>org.jenkins-ci.plugins</groupId>
			<artifactId>pipeline-stage-step</artifactId>
			<version>2.3</version>
			<scope>test</scope>
		</dependency>
		
		<!-- 'parallel' step comes from workflow-cps -->
		
		<!-- 
			for mocking the Jenkins singleton outside Spock
			Only done to verify that IF that is done properly, THEN
			jenkins-spock can use that object 
		-->
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-all</artifactId>
			<version>1.10.19</version>
			<scope>test</scope>
		</dependency>

	</dependencies>

	<build>
		<pluginManagement>
			<plugins>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-assembly-plugin</artifactId>
					<version>${assembly.pluginVersion}</version>
					<executions>
						<execution>
							<id>javadoc</id>
							<phase>package</phase>
							<goals>
								<goal>single</goal>
							</goals>
							<configuration>
								<descriptors>
									<descriptor>src/main/assembly/javadoc.xml</descriptor>
								</descriptors>
							</configuration>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-clean-plugin</artifactId>
					<version>${clean.pluginVersion}</version>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>${compiler.pluginVersion}</version>
					<configuration>
						<source>${sourceVersion}</source>
						<target>${targetVersion}</target>
					</configuration>
				</plugin>

				<plugin>
					<artifactId>maven-dependency-plugin</artifactId>
					<configuration>
						<usedDependencies>
							<!-- these will be used by Groovy code, when the included test utilities 
								are spun up during a test run -->
							<usedDependency>cglib:cglib-nodep</usedDependency>
							<usedDependency>junit:junit</usedDependency>
							<usedDependency>org.objenesis:objenesis</usedDependency>
						</usedDependencies>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>${deploy.pluginVersion}</version>
				</plugin>

				<plugin>
					<artifactId>maven-enforcer-plugin</artifactId>
					<version>${enforcer.pluginVersion}</version>
					<executions>
						<execution>
							<id>enforce-plugin-versions</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<rules>
									<requirePluginVersions>
										<message>You MUST always define plugin versions!</message>
										<banLatest>false</banLatest>
										<banRelease>true</banRelease>
										<banSnapshots>false</banSnapshots>
										<phases>clean,test,install,deploy,site-deploy</phases>
									</requirePluginVersions>
								</rules>
							</configuration>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-gpg-plugin</artifactId>
					<version>${gpg.pluginVersion}</version>
					<executions>
						<execution>
							<id>sign-artifacts</id>
							<phase>verify</phase>
							<goals>
								<goal>sign</goal>
							</goals>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-install-plugin</artifactId>
					<version>${install.pluginVersion}</version>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>${jar.pluginVersion}</version>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>${javadoc.pluginVersion}</version>
					<configuration>
						<skip>true</skip>
					</configuration>
				</plugin>
				
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-release-plugin</artifactId>
					<version>${release.pluginVersion}</version>
					<configuration>
						<preparationGoals>clean exec:exec@update-maven-example-versions scm:add@checkin-updated-examples scm:checkin@checkin-updated-examples verify</preparationGoals>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>${resources.pluginVersion}</version>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-scm-plugin</artifactId>
					<version>${scm.pluginVersion}</version>
					<executions>
						<execution>
							<id>checkin-updated-examples</id>
							<goals>
								<goal>add</goal>
								<goal>checkin</goal>
							</goals>
							<configuration>
								<includes>**/*.xml</includes>
								<excludes>**/target/</excludes>
								<message>[automated] Updating examples to jenkins-spock:${project.version}</message>
							</configuration>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>${site.pluginVersion}</version>
					<dependencies>
						<dependency>
							<groupId>org.apache.maven.doxia</groupId>
							<artifactId>doxia-module-markdown</artifactId>
							<version>1.3</version>
						</dependency>
					</dependencies>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>${source.pluginVersion}</version>
					<executions>
						<execution>
							<id>attach-sources</id>
							<goals>
								<goal>jar-no-fork</goal>
								<goal>test-jar-no-fork</goal>
							</goals>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>${surefire.pluginVersion}</version>
					<executions>
						<execution>
							<id>default-test</id>
							<goals>
								<goal>test</goal>
							</goals>
							<configuration>
								<testSourceDirectory>src/test/groovy</testSourceDirectory>
								<includes>
									<include>**/*Spec</include>
								</includes>
								<useManifestOnlyJar>false</useManifestOnlyJar>
								<systemPropertyVariables>
									<root.loglevel>${test.loglevel}</root.loglevel>
									<root.appender>Stdout</root.appender>
									<test.loglevel>${test.loglevel}</test.loglevel>
									<logdir>${logdir}</logdir>
								</systemPropertyVariables>
							</configuration>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.codehaus.gmavenplus</groupId>
					<artifactId>gmavenplus-plugin</artifactId>
					<version>${groovy.gmaven.pluginVersion}</version>
					<executions>
						<execution>
							<id>groovy</id>
							<goals>
								<goal>addSources</goal>
								<goal>addTestSources</goal>
								<goal>generateStubs</goal>
								<goal>compile</goal>
								<goal>generateTestStubs</goal>
								<goal>compileTests</goal>
								<goal>removeStubs</goal>
								<goal>removeTestStubs</goal>
							</goals>
							<configuration>
								<sources>
									<source>
										<directory>src/main/groovy</directory>
										<includes>
											<include>**/*.groovy</include>
										</includes>
									</source>
								</sources>
								<testSources>
									<testSource>
										<directory>src/test/groovy</directory>
										<includes>
											<include>**/*.groovy</include>
										</includes>
									</testSource>
								</testSources>
							</configuration>
						</execution>
						<execution>
							<id>groovydoc</id>
							<goals>
								<goal>groovydoc</goal>
							</goals>
							<phase>prepare-package</phase>
							<configuration>
								<links>
									<link>
										<href>https://docs.oracle.com/javase/8/docs/api/</href>
										<packages>java,javax</packages>
									</link>
									<link>
										<href>http://docs.groovy-lang.org/${groovy.core.version}/html/gapi/</href>
										<packages>groovy</packages>
									</link>
									<link>
										<href>http://spockframework.org/spock/javadoc/1.1-rc-4/</href>
										<packages>spock</packages>
									</link>
									<link>
										<href>http://javadoc.jenkins.io/</href>
										<packages>hudson,jenkins</packages>
									</link>
									<link>
										<href>http://javadoc.jenkins.io/plugin/workflow-cps/</href>
										<packages>org.jenkinsci.plugins.workflow.cps</packages>
									</link>
									<link>
										<href>http://javadoc.jenkins.io/plugin/workflow-step-api/</href>
										<packages>org.jenkinsci.plugins.workflow.steps,org.jenkinsci.plugins.workflow.structs,org.jenkinsci.plugins.workflow.util</packages>
									</link>
									<link>
										<href>http://javadoc.jenkins.io/plugin/workflow-api/</href>
										<packages>org.jenkinsci.plugins.workflow</packages>
									</link>
								</links>
								<groovyDocOutputDirectory>${project.reporting.outputDirectory}/apidocs</groovyDocOutputDirectory>
								<scope>protected</scope>
							</configuration>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>exec-maven-plugin</artifactId>
					<version>${exec.pluginVersion}</version>
					<executions>
						<execution>
							<id>update-maven-example-versions</id>
							<goals>
								<goal>exec</goal>
							</goals>
							<configuration>
								<workingDirectory>${project.basedir}/examples</workingDirectory>
								<executable>sh</executable>
								<arguments>
									<argument>-c</argument>
									<argument><![CDATA[
										grep -lr "<jenkins-spock.version>" --include="*.xml" . | xargs gawk -i inplace '{ gsub(/<jenkins-spock.version>[^<]+<\/jenkins-spock.version>/, "<jenkins-spock.version>${project.version}</jenkins-spock.version>") }; { print }'
									]]>
									</argument>
								</arguments>
							</configuration>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.sonatype.plugins</groupId>
					<artifactId>nexus-staging-maven-plugin</artifactId>
					<version>${nexusStaging.pluginVersion}</version>
					<extensions>true</extensions>
					<configuration>
						<serverId>ossrh</serverId>
						<nexusUrl>https://oss.sonatype.org/</nexusUrl>
						<autoReleaseAfterClose>true</autoReleaseAfterClose>
					</configuration>
				</plugin>

			</plugins>
		</pluginManagement>

		<plugins>

			<!-- CLEAN lifecycle -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-clean-plugin</artifactId>
			</plugin>

			<!-- DEFAULT lifecycle -->

			<plugin>
				<groupId>org.codehaus.gmavenplus</groupId>
				<artifactId>gmavenplus-plugin</artifactId>
			</plugin>
			
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
			</plugin>
			
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-assembly-plugin</artifactId>
			</plugin>
			
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-gpg-plugin</artifactId>
			</plugin>
			
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-install-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
			</plugin>
			
			<plugin>
				<groupId>org.sonatype.plugins</groupId>
				<artifactId>nexus-staging-maven-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>
