Skip to content

Instantly share code, notes, and snippets.

@nhniches
Created December 5, 2012 18:20
Show Gist options
  • Select an option

  • Save nhniches/4218121 to your computer and use it in GitHub Desktop.

Select an option

Save nhniches/4218121 to your computer and use it in GitHub Desktop.
sample POM file for parent poms
<?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.domain</groupId>
<artifactId>id</artifactId>
<packaging>pom</packaging>
<url>https://domain.com/site/</url>
<inceptionYear>2011</inceptionYear>
<version>3.1</version>
<description>
This is the parent POM for all related java components.
</description>
<name>name</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<source.code.level>1.6</source.code.level>
<!-- plugin versions via properties -->
<checkstyle.plugin.version>2.9.1</checkstyle.plugin.version>
<pmd.plugin.version>2.7.1</pmd.plugin.version>
<javadoc.plugin.version>2.8.1</javadoc.plugin.version>
<findbugs.plugin.version>2.5.1</findbugs.plugin.version>
<surefire.report.plugin.version>2.12</surefire.report.plugin.version>
<surefire.plugin.version>2.12</surefire.plugin.version>
<taglist.plugin.version>2.4</taglist.plugin.version>
<cobertura.plugin.version>2.4</cobertura.plugin.version>
<javancss.plugin.version>2.0</javancss.plugin.version>
<jdepend.plugin.version>2.0-beta-2</jdepend.plugin.version>
<jxr.plugin.version>2.3</jxr.plugin.version>
<changes.plugin.version>2.6</changes.plugin.version>
<changelog.plugin.version>2.2</changelog.plugin.version>
<maven-site-plugin.version>3.0</maven-site-plugin.version>
<jar.plugin.version>2.3.2</jar.plugin.version>
<dependency.plugin.version>2.4</dependency.plugin.version>
<assembly.plugin.version>2.3</assembly.plugin.version>
<org.springframework.version>3.1.1.RELEASE</org.springframework.version>
<releaseRepoUrl>scp://host/maven/repo</releaseRepoUrl>
<snapshotRepoUrl>scp://host/maven/snapshot</snapshotRepoUrl>
<siteUrl>scp://host/maven/site</siteUrl>
<deployRepoUrl>${releaseRepoUrl}</deployRepoUrl>
</properties>
<prerequisites>
<maven>3.0.0</maven>
</prerequisites>
<!-- need the correct (REST) Url for jazz stuff -->
<scm>
<url>https://jazz host</url>
<connection>scm:jazz:https://jazzhost</connection>
<developerConnection>scm:jazz:https://host</developerConnection>
</scm>
<licenses>
</licenses>
<developers>
<developer>
<id>id</id>
<name>dev name</name>
<email>email</email>
<organization>
org
</organization>
<roles>
<role>Lead Developer</role>
</roles>
<timezone>EST</timezone>
</developer>
</developers>
<contributors>
</contributors>
<mailingLists>
<mailingList>
</mailingList>
</mailingLists>
<organization>
<name>org name</name>
<url>http://domain</url>
</organization>
<!-- moved to within the site plugin config -->
<!-- <reporting> </reporting> -->
<distributionManagement>
<repository>
<id></id>
<name></name>
<url>${releaseRepoUrl}</url>
</repository>
<snapshotRepository>
<id></id>
<name></name>
<url>${snapshotRepoUrl}</url>
</snapshotRepository>
<site>
<id></id>
<name></name>
<url>${siteUrl}</url>
</site>
</distributionManagement>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${javadoc.plugin.version}</version>
<configuration>
<source>${source.code.level}</source>
<javadocVersion>${source.code.level}</javadocVersion>
<links>
<link>
http://java.sun.com/javase/6/docs/api/
</link>
</links>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>${jxr.plugin.version}</version>
<configuration>
<aggregate>false</aggregate>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${pmd.plugin.version}</version>
<configuration>
<linkXref>true</linkXref>
<rulesets>
<ruleset>/rulesets/basic.xml</ruleset>
<ruleset>/rulesets/controversial.xml</ruleset>
<ruleset>/rulesets/imports.xml</ruleset>
<ruleset>/rulesets/junit.xml</ruleset>
<ruleset>/rulesets/logging-jakarta-commons.xml</ruleset>
<ruleset>/rulesets/migrating_to_15.xml</ruleset>
<ruleset>/rulesets/migrating_to_junit4.xml</ruleset>
<ruleset>/rulesets/strings.xml</ruleset>
<ruleset>/rulesets/sunsecure.xml</ruleset>
<ruleset>/rulesets/typeresolution.xml</ruleset>
<ruleset>/rulesets/unusedcode.xml</ruleset>
</rulesets>
<sourceEncoding>utf-8</sourceEncoding>
<targetJdk>${source.code.level}</targetJdk>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${checkstyle.plugin.version}</version>
<!-- <configuration> <configLocation> build-tools/checkstyle/project-standard-checks.xml
</configLocation> </configuration> -->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.4</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>${findbugs.plugin.version}</version>
<configuration>
<effort>Max</effort>
<threshold>Low</threshold>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${surefire.report.plugin.version}</version>
<configuration>
<parallel>methods</parallel>
<threadCount>4</threadCount>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>taglist-maven-plugin</artifactId>
<version>${taglist.plugin.version}</version>
<configuration>
<tagListOptions>
<tagClasses>
<tagClass>
<displayName>Todo Work</displayName>
<tags>
<tag>
<matchString>todo</matchString>
<matchType>ignoreCase</matchType>
</tag>
<tag>
<matchString>FIXME</matchString>
<matchType>exact</matchType>
</tag>
<tag>
<matchString>XXX</matchString>
<matchType>exact</matchType>
</tag>
</tags>
</tagClass>
</tagClasses>
</tagListOptions>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>clirr-maven-plugin</artifactId>
<version>2.4</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>${cobertura.plugin.version}</version>
<configuration>
<formats>
<format>xml</format>
<format>html</format>
</formats>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>javancss-maven-plugin</artifactId>
<version>${javancss.plugin.version}</version>
</plugin>
<!-- need to find the latest/correct one -->
<!-- <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jdepend-maven-plugin</artifactId>
<version>${jdepend.plugin.version}</version> </plugin> -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>${changes.plugin.version}</version>
<reportSets>
<reportSet>
<reports>
<report>changes-report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>1.3.1</version>
<reportSets>
<reportSet>
<reports>
<report>dependency-updates-report</report>
<report>plugin-updates-report</report>
<report>property-updates-report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.2</version>
</extension>
</extensions>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${maven-site-plugin.version}</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.2</version>
</dependency>
</dependencies>
<configuration>
<locales>en</locales>
</configuration>
<executions>
<execution>
<id>attach-descriptor</id>
<goals>
<goal>attach-descriptor</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>${source.code.level}</source>
<target>${source.code.level}</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>${jar.plugin.version}</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib</classpathPrefix>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<Implementation-Build>buildDate: ${maven.build.timestamp}</Implementation-Build>
<Class-Path>path</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<id>enforce-plugin-versions</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>[3.0.0,)</version>
<message><![CDATA[project build standards require that you use Maven version 3.0.0 or greater.]]></message>
</requireMavenVersion>
</rules>
<rules>
<requireReleaseDeps>
<message>No Snapshots Allowed!</message>
</requireReleaseDeps>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>[2.4,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
<goal>unpack</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<versionRange>[2.2,)</versionRange>
<goals>
<goal>wsimport</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.7</version>
<configuration>
<serverId></serverId>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.2</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>clirr-maven-plugin</artifactId>
<version>2.3</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${surefire.report.plugin.version}</version>
<configuration>
<parallel>methods</parallel>
<threadCount>4</threadCount>
</configuration>
</plugin>
<!-- Jazz/RTC specific stuff here -->
<!-- Specify the plugins used and their settings when a build (eg: mvn
clean package) is performed. -->
<!-- Add in the Jazz SCM Provider, so that it is known to the system. -->
<!-- This is needed for the SCM commands to function. -->
<!-- Not needed as part of a normal build. Eg "mvn clean install" -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.7</version>
<!-- <configuration>
<providerImplementations>
<jazz>jazz</jazz>
</providerImplementations>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-jazz</artifactId>
<version>1.7</version>
</dependency>
</dependencies> -->
</plugin>
<!-- Explicity list the maven-scm-provider-jazz as a dependency of -->
<!-- the maven-release-plugin so that it can be seen by the -->
<!-- maven-release-plugin. -->
<!-- Not needed as part of a normal build. Eg "mvn clean install" -->
<!-- Only needed when used as part of the release process. -->
<!-- Eg "mvn -B release:prepare" "mvn -B release:perform" etc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.3.2</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-jazz</artifactId>
<version>1.7</version>
</dependency>
</dependencies>
</plugin>
<!-- end of RTC plugin config -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>1.3.1</version>
</plugin>
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-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-enforcer-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>clirr-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.plugin.version}</version>
<configuration>
<environmentVariables>
<environment>dev</environment>
</environmentVariables>
<systemProperties>
<property>
<name>environment</name>
<value>${environment}</value>
</property>
<property>
<name>LOG_FULLPATH</name>
<value>testing.log</value>
</property>
</systemProperties>
<additionalClasspathElements>
<additionalClasspathElement>.pathto.jar</additionalClasspathElement>
</additionalClasspathElements>
<!-- useSystemClassLoader back to true and setting useManifestOnlyJar
to false -->
</configuration>
</plugin>
<!-- Jazz/RTC specific stuff here -->
<!-- Specify the plugins used and their settings when a build (eg: mvn
clean package) is performed. -->
<!-- Add in the Jazz SCM Provider, so that it is known to the system. -->
<!-- This is needed for the SCM commands to function. -->
<!-- Not needed as part of a normal build. Eg "mvn clean install" -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
</plugin>
<!-- Explicity list the maven-scm-provider-jazz as a dependency of -->
<!-- the maven-release-plugin so that it can be seen by the -->
<!-- maven-release-plugin. -->
<!-- Not needed as part of a normal build. Eg "mvn clean install" -->
<!-- Only needed when used as part of the release process. -->
<!-- Eg "mvn -B release:prepare" "mvn -B release:perform" etc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
</plugin>
<!-- end of RTC plugin config -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>org.apache.axis2:*</exclude>
<exclude>org.apache.ws.commons:*</exclude>
<exclude>org.jibx:*</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.5</version>
<type>jar</type>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
</dependencies>
</dependencyManagement>
<modules>
<!-- <module>mod1</module> -->
</modules>
</project>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment