parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>io.gdcc.export</groupId> <artifactId>parent</artifactId> <version>2.0.0-M2</version> </dependency>
<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> <packaging>pom</packaging> <groupId>io.gdcc.export</groupId> <artifactId>parent</artifactId> <version>2.0.0-M2</version> <modules> <module>example</module> </modules> <organization> <name>Global Dataverse Community Consortium</name> <url>https://dataversecommunity.global</url> </organization> <name>Dataverse Metadata Exporter Plugins Parent POM</name> <url>https://github.com/gdcc/dataverse-exporters</url> <description>Parent POM for easy coordination of all metadata export plugin POMs</description> <licenses> <license> <name>Apache-2.0</name> <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url> <distribution>repo</distribution> </license> </licenses> <developers> <developer> <name>Oliver Bertuch</name> <url>https://github.com/poikilotherm</url> <email>exporters-parent@gdcc.io</email> <organization>Forschungszentrum Jülich GmbH</organization> <organizationUrl>https://www.fz-juelich.de/en/zb</organizationUrl> </developer> </developers> <issueManagement> <url>https://github.com/gdcc/dataverse-exporters/issues</url> <system>GitHub Issues</system> </issueManagement> <scm> <connection>scm:git:git@github.com:gdcc/dataverse-exporters.git</connection> <developerConnection>scm:git:git@github.com:gdcc/dataverse-exporters.git</developerConnection> <url>git@github.com:gdcc/dataverse-exporters.git</url> <tag>HEAD</tag> </scm> <ciManagement> <url>https://github.com/gdcc/dataverse-exporters/actions</url> <system>github</system> <notifiers> <notifier> <address>dataversebot@gdcc.io</address> </notifier> </notifiers> </ciManagement> <distributionManagement> <snapshotRepository> <id>ossrh</id> <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> <repository> <id>ossrh</id> <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> </distributionManagement> <properties> <jdk.version>17</jdk.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <javadoc.lint>none</javadoc.lint> <!-- Needed to avoid IDEA IDE compilation failures. See commits in GH #5059 --> <compilerArgument /> <project.timezone>UTC</project.timezone> <project.language>en</project.language> <project.region>US</project.region> <argLine>-Duser.timezone=${project.timezone} -Dfile.encoding=${project.build.sourceEncoding} -Duser.language=${project.language} -Duser.region=${project.region}</argLine> <skipUT>false</skipUT> <skipIT>false</skipIT> <!-- Dependencies --> <dataverse.spi.version>2.0.0</dataverse.spi.version> <google.auto.service.version>1.1.1</google.auto.service.version> <slf4j.version>2.0.13</slf4j.version> <jakarta.json-api.version>2.1.0</jakarta.json-api.version> <eclipse.parsson.version>1.1.6</eclipse.parsson.version> <jakarta.ws.rs.version>3.1.0</jakarta.ws.rs.version> <!-- Testing dependencies --> <junit.jupiter.version>5.10.2</junit.jupiter.version> <xmlunit.version>2.10.0</xmlunit.version> <hamcrest.version>2.2</hamcrest.version> <jsonassert.version>1.5.2</jsonassert.version> <!-- Official Maven Plugins --> <maven-plugin-api.version>3.8.2</maven-plugin-api.version> <maven-plugin-annotations.version>3.6.4</maven-plugin-annotations.version> <maven-compiler-plugin.version>3.13.0</maven-compiler-plugin.version> <maven-jar-plugin.version>3.4.2</maven-jar-plugin.version> <maven-dependency-plugin.version>3.7.1</maven-dependency-plugin.version> <maven-surefire-plugin.version>3.3.0</maven-surefire-plugin.version> <maven-failsafe-plugin.version>3.3.0</maven-failsafe-plugin.version> <maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version> <maven-plugin-plugin.version>3.13.1</maven-plugin-plugin.version> <maven-site-plugin.version>4.0.0-M15</maven-site-plugin.version> <maven-source-plugin.version>3.3.1</maven-source-plugin.version> <maven-javadoc-plugin.version>3.7.0</maven-javadoc-plugin.version> <maven-flatten-plugin.version>1.6.0</maven-flatten-plugin.version> <maven-gpg-plugin.version>3.2.4</maven-gpg-plugin.version> <maven-release-plugin.version>3.1.0</maven-release-plugin.version> <maven-resources-plugin.version>3.3.1</maven-resources-plugin.version> <maven-enforcer-plugin.version>3.5.0</maven-enforcer-plugin.version> <pomchecker.version>1.11.0</pomchecker.version> <nexus-staging-plugin.version>1.7.0</nexus-staging-plugin.version> <checkstyle-maven-plugin.version>3.4.0</checkstyle-maven-plugin.version> <checkstyle.version>10.17.0</checkstyle.version> <spotbugs-maven-plugin.version>4.8.5.0</spotbugs-maven-plugin.version> <dependency-check-maven.version>8.4.3</dependency-check-maven.version> <jacoco.version>0.8.12</jacoco.version> <sonar.version>4.0.0.4121</sonar.version> <spotless.version>2.43.0</spotless.version> </properties> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>${maven-enforcer-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven-compiler-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>${maven-jar-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>${maven-dependency-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${maven-surefire-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>${maven-failsafe-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-plugin-plugin</artifactId> <version>${maven-plugin-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>${maven-site-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>${maven-source-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${maven-javadoc-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>${maven-gpg-plugin.version}</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>flatten-maven-plugin</artifactId> <version>${maven-flatten-plugin.version}</version> </plugin> <plugin> <groupId>org.kordamp.maven</groupId> <artifactId>pomchecker-maven-plugin</artifactId> <version>${pomchecker.version}</version> </plugin> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>${nexus-staging-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>${maven-release-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>${maven-resources-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>${checkstyle-maven-plugin.version}</version> <dependencies> <dependency> <groupId>com.puppycrawl.tools</groupId> <artifactId>checkstyle</artifactId> <version>${checkstyle.version}</version> </dependency> </dependencies> </plugin> <plugin> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> <version>${spotbugs-maven-plugin.version}</version> </plugin> <plugin> <groupId>org.sonarsource.scanner.maven</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>${sonar.version}</version> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <release>${jdk.version}</release> <compilerArgument>${compilerArgument}</compilerArgument> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> </plugin> <!-- TESTING --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>${skipUT}</skipTests> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <configuration> <skipTests>${skipIT}</skipTests> </configuration> </plugin> <!-- RELEASING --> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <extensions>true</extensions> <configuration> <serverId>ossrh</serverId> <nexusUrl>https://s01.oss.sonatype.org</nexusUrl> <autoReleaseAfterClose>true</autoReleaseAfterClose> </configuration> </plugin> <plugin> <groupId>org.kordamp.maven</groupId> <artifactId>pomchecker-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <configuration> <useReleaseProfile>false</useReleaseProfile> <releaseProfiles>release</releaseProfiles> <autoVersionSubmodules>true</autoVersionSubmodules> <goals>deploy</goals> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>flatten-maven-plugin</artifactId> <configuration> <updatePomFile>true</updatePomFile> <flattenMode>oss</flattenMode> <pomElements> <distributionManagement>remove</distributionManagement> <repositories>remove</repositories> </pomElements> </configuration> <executions> <!-- enable flattening --> <execution> <id>flatten</id> <phase>process-resources</phase> <goals> <goal>flatten</goal> </goals> </execution> <!-- ensure proper cleanup --> <execution> <id>flatten.clean</id> <phase>clean</phase> <goals> <goal>clean</goal> </goals> </execution> </executions> </plugin> <!-- META --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>no-junit4</id> <phase>generate-test-resources</phase> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <bannedDependencies> <excludes> <exclude>junit:junit:*:*:test</exclude> <exclude>org.junit:junit:*:*:test</exclude> <exclude>org.junit.vintage:*:*:*:test</exclude> </excludes> </bannedDependencies> </rules> </configuration> </execution> <execution> <id>no-other-logging-libs</id> <phase>generate-test-resources</phase> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <bannedDependencies> <excludes> <exclude>org.apache.logging.log4j:log4j-api:*:*:*</exclude> <exclude>org.apache.logging.log4j:log4j-core:*:*:*</exclude> <exclude>ch.qos.logback:logback-classic:*:*:*</exclude> <exclude>log4j:log4j:*:*:*</exclude> <exclude>ch.qos.reload4j:reload4j:*:*:*</exclude> </excludes> </bannedDependencies> </rules> </configuration> </execution> <execution> <id>general-reqs</id> <goals> <goal>enforce</goal> </goals> <phase>initialize</phase> <configuration> <rules> <banDuplicatePomDependencyVersions/> <requireJavaVersion> <version>[${jdk.version}.0,)</version> </requireJavaVersion> <requireMavenVersion> <version>[3.6.3,)</version> </requireMavenVersion> </rules> </configuration> </execution> <!-- TODO: at a later point maybe introduce dependency convergence / same version checks --> </executions> </plugin> </plugins> </build> <dependencyManagement> <dependencies> <!-- Common interfaces for exporter plugins --> <dependency> <groupId>io.gdcc</groupId> <artifactId>dataverse-spi</artifactId> <version>${dataverse.spi.version}</version> </dependency> <!-- Required to be used by a plugin to be discoverable --> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> <version>${google.auto.service.version}</version> </dependency> <!-- Logging facade --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>${slf4j.version}</version> </dependency> <!-- Data processing --> <dependency> <groupId>jakarta.json</groupId> <artifactId>jakarta.json-api</artifactId> <version>${jakarta.json-api.version}</version> </dependency> <dependency> <groupId>org.eclipse.parsson</groupId> <artifactId>parsson</artifactId> <version>${eclipse.parsson.version}</version> </dependency> <dependency> <groupId>jakarta.ws.rs</groupId> <artifactId>jakarta.ws.rs-api</artifactId> <version>${jakarta.ws.rs.version}</version> </dependency> <!-- TESTING DEPENDENCIES --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <version>${junit.jupiter.version}</version> </dependency> <dependency> <groupId>org.xmlunit</groupId> <artifactId>xmlunit-core</artifactId> <version>${xmlunit.version}</version> </dependency> <dependency> <groupId>org.xmlunit</groupId> <artifactId>xmlunit-matchers</artifactId> <version>${xmlunit.version}</version> <!-- This library relies on the outdated hamcrest 1.3. As hamcrest changed the artifactId from hamcrest-core to just hamcrest and the API is the very same, we simply exclude it here and let it pick up the newer hamcrest library on the classpath. --> <exclusions> <exclusion> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest</artifactId> <version>${hamcrest.version}</version> </dependency> <dependency> <groupId>org.skyscreamer</groupId> <artifactId>jsonassert</artifactId> <version>${jsonassert.version}</version> </dependency> </dependencies> </dependencyManagement> <!-- Include some very common dependencies as sane defaults for any exporter --> <dependencies> <!-- No exporter plugin can do without these two dependencies. --> <dependency> <groupId>io.gdcc</groupId> <artifactId>dataverse-spi</artifactId> </dependency> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> </dependency> <!-- These are here for convenience, as most exporters will use them one way or another --> <dependency> <groupId>jakarta.json</groupId> <artifactId>jakarta.json-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>jakarta.ws.rs</groupId> <artifactId>jakarta.ws.rs-api</artifactId> <scope>provided</scope> </dependency> <!-- All exporters should use SLF4J for logging! --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> <!-- All testing is probably done with JUnit --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <scope>test</scope> </dependency> <!-- Make a simple implementation available during testing to avoid nasty warnings --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <scope>test</scope> </dependency> <!-- This is here for convenience, providing a sane default JSON-P implementation (as used in Payara) --> <dependency> <groupId>org.eclipse.parsson</groupId> <artifactId>parsson</artifactId> <scope>test</scope> </dependency> </dependencies> <profiles> <profile> <id>spotless</id> <build> <plugins> <plugin> <groupId>com.diffplug.spotless</groupId> <artifactId>spotless-maven-plugin</artifactId> <version>${spotless.version}</version> <configuration> <!-- optional: limit format enforcement to just the files changed by this feature branch --> <ratchetFrom>origin/branch-5.0</ratchetFrom> <formats> <!-- you can define as many formats as you want, each is independent --> <format> <!-- define the files to apply to --> <includes> <include>*.md</include> <include>.gitignore</include> </includes> <!-- define the steps to apply to those files --> <trimTrailingWhitespace /> <endWithNewline /> <indent> <tabs>true</tabs> <spacesPerTab>4</spacesPerTab> </indent> </format> </formats> <!-- define a language-specific format --> <java> <!-- no need to specify files, inferred automatically, but you can if you want --> <importOrder /> <!-- standard import order --> <removeUnusedImports /> <!-- self-explanatory --> <!-- apply a specific flavor of google-java-format and reflow long strings --> <googleJavaFormat> <version>1.15.0</version> <style>AOSP</style> <reflowLongStrings>true</reflowLongStrings> </googleJavaFormat> <!-- make sure every file has the following copyright header. optionally, Spotless can set copyright years by digging through git history (see "license" section below) --> <!--<licenseHeader>--> <!--<content>/* (C)$YEAR */</content>--> <!-- or <file>${project.basedir}/license-header</file> --> <!--</licenseHeader>--> </java> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>coverage</id> <properties> <sonar.host.url>https://sonarcloud.io</sonar.host.url> <sonar.organization>gdcc</sonar.organization> <sonar.projectKey>you-need-to-configure-this</sonar.projectKey> <sonar.moduleKey>${project.groupId}:${project.artifactId}</sonar.moduleKey> <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin> </properties> <build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>${jacoco.version}</version> <executions> <execution> <id>prepare-agent</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <phase>test</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>release</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <dependencies> <dependency> <groupId>org.kordamp.maven</groupId> <artifactId>pomchecker-enforcer-rules</artifactId> <version>${pomchecker.version}</version> </dependency> </dependencies> <executions> <execution> <id>enforce</id> <goals> <goal>enforce</goal> </goals> <phase>verify</phase> <configuration> <rules> <CheckMavenCentral implementation="org.kordamp.maven.enforcer.checker.CheckMavenCentral"> <failOnWarning>true</failOnWarning> </CheckMavenCentral> </rules> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <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-javadoc-plugin</artifactId> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> <configuration> <source>${jdk.version}</source> <detectJavaApiLink>false</detectJavaApiLink> <doclint>${javadoc.lint}</doclint> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> </project>