archetype-resources.pom.xml Maven / Gradle / Ivy
Go to download
Java project ready for proffesionals.
A plain Java project, includes unit tests, code coverage, mutation tests, and integration tests.
<?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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>\${groupId}</groupId> <artifactId>\${artifactId}</artifactId> <version>\${version}</version> <!-- TODO set project info --> <name>Example name</name> <description>Example description.</description> <url>https://example.com/</url> <inceptionYear>\${year}</inceptionYear> <properties> <coverage.threshold>85%</coverage.threshold> <mutation.coverage.threshold>50</mutation.coverage.threshold> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.release>17</maven.compiler.release> <!-- Dependencies --> <assertj.version>${assertj.version}</assertj.version> <junit-jupiter.version>${junit-jupiter.version}</junit-jupiter.version> <mockito.version>${mockito.version}</mockito.version> <!-- Plugins --> <maven-clean-plugin.version>${maven-clean-plugin.version}</maven-clean-plugin.version> <maven-compiler-plugin.version>${maven-compiler-plugin.version}</maven-compiler-plugin.version> <maven-invoker-plugin.version>${maven-invoker-plugin.version}</maven-invoker-plugin.version> <maven-jar-plugin.version>${maven-jar-plugin.version}</maven-jar-plugin.version> <maven-site-plugin.version>${maven-site-plugin.version}</maven-site-plugin.version> <jacoco-maven-plugin.version>${jacoco-maven-plugin.version}</jacoco-maven-plugin.version> <junit-platform-maven-plugin.version>${junit-platform-maven-plugin.version}</junit-platform-maven-plugin.version> <pitest-maven.version>${pitest-maven.version}</pitest-maven.version> <pitest-junit5-plugin.version>${pitest-junit5-plugin.version}</pitest-junit5-plugin.version> </properties> <licenses> <license> <name>MIT License</name> <url>https://opensource.org/licenses/MIT</url> <distribution>repo</distribution> </license> </licenses> <dependencyManagement> <dependencies> <!-- Testing Dependencies --> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> <version>\${assertj.version}</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>\${junit-jupiter.version}</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>\${junit-jupiter.version}</version> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>\${mockito.version}</version> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-junit-jupiter</artifactId> <version>\${mockito.version}</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <!-- Testing Dependencies --> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-junit-jupiter</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <pluginManagement> <plugins> <!-- Apache Plugins --> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>\${maven-clean-plugin.version}</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>\${maven-compiler-plugin.version}</version> </plugin> <plugin> <artifactId>maven-invoker-plugin</artifactId> <version>\${maven-invoker-plugin.version}</version> </plugin> <plugin> <artifactId>maven-jar-plugin</artifactId> <version>\${maven-jar-plugin.version}</version> </plugin> <plugin> <artifactId>maven-site-plugin</artifactId> <version>\${maven-site-plugin.version}</version> </plugin> <!-- Third Party Plugins --> <plugin> <groupId>de.sormuras.junit</groupId> <artifactId>junit-platform-maven-plugin</artifactId> <version>\${junit-platform-maven-plugin.version}</version> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>\${jacoco-maven-plugin.version}</version> <configuration> <propertyName>jacoco.java.option</propertyName> <rules> <rule> <limits> <limit> <minimum>\${coverage.threshold}</minimum> </limit> </limits> </rule> </rules> </configuration> </plugin> <plugin> <groupId>org.pitest</groupId> <artifactId>pitest-maven</artifactId> <version>\${pitest-maven.version}</version> <dependencies> <dependency> <groupId>org.pitest</groupId> <artifactId>pitest-junit5-plugin</artifactId> <version>\${pitest-junit5-plugin.version}</version> </dependency> </dependencies> <configuration> <exportLineCoverage>true</exportLineCoverage> <mutationThreshold>\${mutation.coverage.threshold}</mutationThreshold> <mutators> <mutator>STRONGER</mutator> </mutators> <timestampedReports>false</timestampedReports> </configuration> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>de.sormuras.junit</groupId> <artifactId>junit-platform-maven-plugin</artifactId> <extensions>true</extensions> <configuration> <executor>JAVA</executor> <javaOptions> <additionalOptions> <jacoco>\${jacoco.java.option}</jacoco> </additionalOptions> </javaOptions> <parameters> <junit.jupiter.execution.parallel.enabled>false</junit.jupiter.execution.parallel.enabled> <junit.jupiter.execution.parallel.mode.default>concurrent</junit.jupiter.execution.parallel.mode.default> <junit.jupiter.displayname.generator.default>org.junit.jupiter.api.DisplayNameGenerator$ReplaceUnderscores</junit.jupiter.displayname.generator.default><!-- editorconfig-checker-disable-line --> </parameters> </configuration> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <executions> <execution> <goals> <goal>prepare-agent</goal> <goal>check</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <profiles> <!-- use this profile for development stage. --> <profile> <id>dev</id> <properties> <coverage.threshold>0%</coverage.threshold> <mutation.coverage.threshold>0</mutation.coverage.threshold> </properties> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <failOnWarning>false</failOnWarning> </configuration> </plugin> </plugins> </build> </profile> <!-- Use this profile to create jacoco execution report. --> <profile> <id>cov</id> <build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <executions> <execution> <id>jacoco-report</id> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <!-- Use this profile to execute integration testing. --> <profile> <id>its</id> <build> <plugins> <plugin> <artifactId>maven-invoker-plugin</artifactId> <configuration> <cloneProjectsTo>\${project.build.directory}/it</cloneProjectsTo> <localRepositoryPath>\${project.build.directory}/local-it-repo</localRepositoryPath> <goals> <goal>test</goal> </goals> <settingsFile>src/it/settings.xml</settingsFile> <showErrors>true</showErrors> </configuration> <executions> <execution> <goals> <goal>install</goal> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <!-- Use this profile to execute mutation testing. --> <profile> <id>mut</id> <dependencies> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.pitest</groupId> <artifactId>pitest-maven</artifactId> <executions> <execution> <phase>verify</phase> <goals> <!-- REC: modify to scmMutationCoverage once the project starts --> <goal>mutationCoverage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> </project>
© 2015 - 2024 Weber Informatics LLC | Privacy Policy