Awesome
universal-maven-parent: Generally usefull maven parent artifact
Usage
Set universal-maven-parent
as parent project and activate required profiles with parent.profile.activate
property.
Profile activation is implemented with maven-profiledep-extension
<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>
<parent>
<groupId>com.github.sviperll</groupId>
<artifactId>universal-maven-parent</artifactId>
<version>0.21</version>
</parent>
<groupId>group</groupId>
<artifactId>myartifact</artifactId>
<version>version</version>
<!-- ... -->
<properties>
<parent.profile.activate>java6,nexus-deploy</parent.profile.activate>
<!-- ... -->
</properties>
<!-- ... -->
</project>
Profiles
java6
Use version 1.6 of java language and runtime
java7
Use version 1.7 of java language and runtime
java8
Use version 1.8 of java language and runtime
bootclasspath
Fork javac and specify bootclasspath compilation argument using JDK6_HOME, JDK7_HOME or JDK8_HOME environment variable
nexus-deploy
Configure nexus-staging-maven-plugin to run instead of standard deploy-plugin to deploy artifact to running nexus instance
executable
Add main class and classpath to jar manifest and create archives with jar file and it's dependencies
strict-dependencies
Implies strict-dependencies-usage and enforce-dependencies-versions profiles described below.
strict-dependencies-usage
Use analyze-only goal of maven-dependency-plugin to make all dependencies explicit and to get rid of unused dependencies
enforce-dependencies-versions
Use enforcer plugin to make sure that all transitive dependencies are resolved and same version number is chosen for same artifacts.
no-deploy-to-maven-repository
Do not deploy artifacts to maven repository. No plugins are executed on deploy phase.
pitest-report
Generate PITest code-coverage reports on release