Created
January 19, 2015 04:52
-
-
Save jeffjensen/729d64c56d5563dc9da2 to your computer and use it in GitHub Desktop.
Example client module showing Serenity dependency issues via maven-enforcer-plugin. Just run mvn compile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<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> | |
<!-- Inherit defaults from Spring Boot --> | |
<parent> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-starter-parent</artifactId> | |
<version>1.2.1.RELEASE</version> | |
</parent> | |
<groupId>com.example</groupId> | |
<artifactId>issues</artifactId> | |
<version>1.0.0-SNAPSHOT</version> | |
<packaging>jar</packaging> | |
<name>Example issues project</name> | |
<description>Showing dependency issues.</description> | |
<properties> | |
<java.version>1.7</java.version> | |
<!-- build settings --> | |
<mavenMinVersion>3.2.3</mavenMinVersion> | |
<!-- DEPENDENCY VERSIONS --> | |
<!-- test dependency versions --> | |
<extraEnforcerRulesVersion>1.0-beta-3</extraEnforcerRulesVersion> | |
<cucumberCoreVersion>1.2.2</cucumberCoreVersion> | |
<cucumberGherkinVersion>2.12.2</cucumberGherkinVersion> | |
<cucumberHtmlVersion>0.2.3</cucumberHtmlVersion> | |
<cucumberJavaVersion>1.2.2</cucumberJavaVersion> | |
<cucumberJunitVersion>1.2.2</cucumberJunitVersion> | |
<cucumberJvmVersion>1.0.3</cucumberJvmVersion> | |
<serenityVersion>1.0.24</serenityVersion> | |
<serenityCucumberVersion>1.0.5</serenityCucumberVersion> | |
<!-- PLUGIN VERSIONS --> | |
<!-- lifecycle related --> | |
<cleanPluginVersion>2.6.1</cleanPluginVersion> | |
<compilerPluginVersion>3.2</compilerPluginVersion> | |
<dependencyPluginVersion>2.9</dependencyPluginVersion> | |
<enforcerPluginVersion>1.3.1</enforcerPluginVersion> | |
<jarPluginVersion>2.5</jarPluginVersion> | |
<resourcesPluginVersion>2.7</resourcesPluginVersion> | |
<!-- test related --> | |
<failsafePluginVersion>2.18.1</failsafePluginVersion> | |
<surefirePluginVersion>2.18.1</surefirePluginVersion> | |
</properties> | |
<prerequisites> | |
<maven>${mavenMinVersion}</maven> | |
</prerequisites> | |
<build> | |
<pluginManagement> | |
<plugins> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-clean-plugin</artifactId> | |
<version>${cleanPluginVersion}</version> | |
</plugin> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-compiler-plugin</artifactId> | |
<version>${compilerPluginVersion}</version> | |
<configuration> | |
<source>${java.version}</source> | |
<target>${java.version}</target> | |
<compilerArgs> | |
<arg>-Xlint:unchecked</arg> | |
<arg>-Werror</arg> | |
</compilerArgs> | |
</configuration> | |
</plugin> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-dependency-plugin</artifactId> | |
<version>${dependencyPluginVersion}</version> | |
</plugin> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-enforcer-plugin</artifactId> | |
<version>${enforcerPluginVersion}</version> | |
<dependencies> | |
<dependency> | |
<groupId>org.codehaus.mojo</groupId> | |
<artifactId>extra-enforcer-rules</artifactId> | |
<version>${extraEnforcerRulesVersion}</version> | |
</dependency> | |
</dependencies> | |
<executions> | |
<execution> | |
<id>enforcer</id> | |
<goals> | |
<goal>enforce</goal> | |
</goals> | |
<configuration> | |
<!-- | |
Quick links to rules: | |
1) http://maven.apache.org/enforcer/enforcer-rules/index.html | |
2) http://mojo.codehaus.org/extra-enforcer-rules/ | |
--> | |
<rules> | |
<!-- main rules --> | |
<requireMavenVersion> | |
<version>${mavenMinVersion}</version> | |
</requireMavenVersion> | |
<requireJavaVersion> | |
<version>${java.version}</version> | |
</requireJavaVersion> | |
<requireNoRepositories> | |
<message>Best Practice is to never define repositories in pom.xml (use a repository manager instead)</message> | |
</requireNoRepositories> | |
<requirePluginVersions> | |
<phases>compile</phases> | |
</requirePluginVersions> | |
<requireUpperBoundDeps /> | |
<DependencyConvergence /> | |
<bannedDependencies> | |
<!-- these are the banned deps; "exclude" is confusing! --> | |
<excludes> | |
<exclude>commons-logging</exclude> | |
<exclude>log4j:log4j</exclude> | |
<exclude>org.apache.logging.log4j:*</exclude> | |
</excludes> | |
<includes> | |
</includes> | |
</bannedDependencies> | |
<banTransitiveDependencies> | |
<!-- these are the trans deps to allow/ignore when occur --> | |
<excludes> | |
<exclude>org.springframework.boot:*:*</exclude> | |
</excludes> | |
<includes> | |
</includes> | |
</banTransitiveDependencies> | |
<!-- extra rules --> | |
<banCircularDependencies /> | |
<banDuplicateClasses> | |
<findAllDuplicates>true</findAllDuplicates> | |
<dependencies> | |
<dependency> | |
<groupId>org.apache.tomcat*</groupId> | |
<ignoreClasses> | |
<ignoreClass>*</ignoreClass> | |
</ignoreClasses> | |
</dependency> | |
<dependency> | |
<groupId>org.aspectj*</groupId> | |
<ignoreClasses> | |
<ignoreClass>*</ignoreClass> | |
</ignoreClasses> | |
</dependency> | |
</dependencies> | |
</banDuplicateClasses> | |
<enforceBytecodeVersion> | |
<maxJdkVersion>1.7</maxJdkVersion> | |
</enforceBytecodeVersion> | |
</rules> | |
</configuration> | |
</execution> | |
</executions> | |
</plugin> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-failsafe-plugin</artifactId> | |
<version>${failsafePluginVersion}</version> | |
</plugin> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-jar-plugin</artifactId> | |
<version>${jarPluginVersion}</version> | |
<configuration> | |
<archive> | |
<index>true</index> | |
<manifest> | |
<addDefaultImplementationEntries>true</addDefaultImplementationEntries> | |
</manifest> | |
<manifestEntries> | |
<url>${project.url}</url> | |
<Build-Number>${BUILD_NUMBER}</Build-Number> | |
</manifestEntries> | |
</archive> | |
</configuration> | |
</plugin> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-resources-plugin</artifactId> | |
<version>${resourcesPluginVersion}</version> | |
</plugin> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-surefire-plugin</artifactId> | |
<version>${surefirePluginVersion}</version> | |
</plugin> | |
</plugins> | |
</pluginManagement> | |
<plugins> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-enforcer-plugin</artifactId> | |
</plugin> | |
</plugins> | |
</build> | |
<dependencyManagement> | |
<dependencies> | |
<!-- Cucumber --> | |
<dependency> | |
<groupId>info.cukes</groupId> | |
<artifactId>cucumber-core</artifactId> | |
<version>${cucumberCoreVersion}</version> | |
<scope>test</scope> | |
</dependency> | |
<dependency> | |
<groupId>info.cukes</groupId> | |
<artifactId>cucumber-html</artifactId> | |
<version>${cucumberHtmlVersion}</version> | |
<scope>test</scope> | |
</dependency> | |
<dependency> | |
<groupId>info.cukes</groupId> | |
<artifactId>cucumber-java</artifactId> | |
<version>${cucumberJavaVersion}</version> | |
<scope>test</scope> | |
</dependency> | |
<dependency> | |
<groupId>info.cukes</groupId> | |
<artifactId>cucumber-jvm-deps</artifactId> | |
<version>${cucumberJvmVersion}</version> | |
<scope>test</scope> | |
</dependency> | |
<dependency> | |
<groupId>info.cukes</groupId> | |
<artifactId>cucumber-junit</artifactId> | |
<version>${cucumberJunitVersion}</version> | |
<scope>test</scope> | |
</dependency> | |
<dependency> | |
<groupId>info.cukes</groupId> | |
<artifactId>gherkin</artifactId> | |
<version>${cucumberGherkinVersion}</version> | |
<scope>test</scope> | |
</dependency> | |
<!-- Serenity --> | |
<dependency> | |
<groupId>net.serenity-bdd</groupId> | |
<artifactId>core</artifactId> | |
<version>${serenityVersion}</version> | |
<scope>test</scope> | |
</dependency> | |
<dependency> | |
<groupId>net.serenity-bdd</groupId> | |
<artifactId>serenity-junit</artifactId> | |
<version>${serenityVersion}</version> | |
<scope>test</scope> | |
</dependency> | |
<dependency> | |
<groupId>net.serenity-bdd</groupId> | |
<artifactId>serenity-cucumber</artifactId> | |
<version>${serenityCucumberVersion}</version> | |
<scope>test</scope> | |
</dependency> | |
</dependencies> | |
</dependencyManagement> | |
<dependencies> | |
<!-- Spring --> | |
<dependency> | |
<groupId>org.springframework</groupId> | |
<artifactId>spring-core</artifactId> | |
</dependency> | |
<dependency> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-starter-test</artifactId> | |
<scope>test</scope> | |
</dependency> | |
<!-- Cucumber --> | |
<dependency> | |
<groupId>info.cukes</groupId> | |
<artifactId>cucumber-core</artifactId> | |
</dependency> | |
<dependency> | |
<groupId>info.cukes</groupId> | |
<artifactId>cucumber-html</artifactId> | |
</dependency> | |
<dependency> | |
<groupId>info.cukes</groupId> | |
<artifactId>cucumber-java</artifactId> | |
</dependency> | |
<dependency> | |
<groupId>info.cukes</groupId> | |
<artifactId>cucumber-jvm-deps</artifactId> | |
</dependency> | |
<dependency> | |
<groupId>info.cukes</groupId> | |
<artifactId>cucumber-junit</artifactId> | |
</dependency> | |
<dependency> | |
<groupId>info.cukes</groupId> | |
<artifactId>gherkin</artifactId> | |
</dependency> | |
<!-- Serenity --> | |
<dependency> | |
<groupId>net.serenity-bdd</groupId> | |
<artifactId>core</artifactId> | |
</dependency> | |
<dependency> | |
<groupId>net.serenity-bdd</groupId> | |
<artifactId>serenity-junit</artifactId> | |
</dependency> | |
<dependency> | |
<groupId>net.serenity-bdd</groupId> | |
<artifactId>serenity-cucumber</artifactId> | |
</dependency> | |
</dependencies> | |
</project> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment