dspace-replicate
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.dspace</groupId>
<artifactId>dspace-replicate</artifactId>
<version>8.1</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>
<groupId>org.dspace</groupId>
<artifactId>dspace-replicate</artifactId>
<packaging>jar</packaging>
<name>DSpace Replication Task Suite</name>
<description>Replication Task Suite: A DSpace add-on providing Curation Tasks that perform replication
(backup and restore) of DSpace content to other locations or services.</description>
<url>https://wiki.lyrasis.org/display/DSPACE/ReplicationTaskSuite</url>
<version>8.1</version>
<organization>
<name>LYRASIS</name>
<url>http://www.dspace.org</url>
</organization>
<properties>
<!-- DSpace Version Information (supported version of DSpace is 8.1 or above) -->
<dspace.version>[8.1,8.20)</dspace.version>
<!-- DuraCloud Version Information (supported version of DuraCloud) -->
<duracloud.version>8.1.0</duracloud.version>
<!-- DuraSpace BagIt Support Library -->
<bagit-support.version>1.1.0</bagit-support.version>
<jaxb-api.version>4.0.2</jaxb-api.version>
<jaxb-runtime.version>4.0.5</jaxb-runtime.version>
<!-- Replication Task Suite requires Java 17 because DSpace 8 requires it -->
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>${project.build.sourceEncoding}</project.reporting.outputEncoding>
</properties>
<build>
<!-- Define Maven Plugin Settings / versions. -->
<pluginManagement>
<plugins>
<!-- Use to enforce a particular version of Java and ensure no conflicting dependencies -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<id>enforce-java</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>${java.version}</version>
</requireJavaVersion>
<requireMavenVersion>
<version>[3.8,)</version>
</requireMavenVersion>
</rules>
</configuration>
</execution>
<!-- Make sure that we do not have conflicting dependencies-->
<execution>
<id>enforce-versions</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<DependencyConvergence />
</rules>
</configuration>
</execution>
<execution>
<id>enforce-banned-dependencies</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<excludes>
<exclude>log4j:log4j</exclude>
</excludes>
</bannedDependencies>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<!-- Used to compile all Java classes -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.0</version>
<configuration>
<release>${java.version}</release>
</configuration>
</plugin>
<!-- Used to package all JARs -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.2</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.8.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.8.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
</plugin>
<!-- Used to validate all code style rules in source code via the Checkstyle config in checkstyle.xml -->
<!-- Can be skipped by passing -Dcheckstyle.skip=true to Maven. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.6.0</version>
<executions>
<execution>
<id>verify-style</id>
<!-- Bind to verify so it runs after package & unit tests, but before install -->
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<sourceDirectories>
<sourceDirectory>src/main/java</sourceDirectory>
</sourceDirectories>
<configLocation>checkstyle.xml</configLocation>
<logViolationsToConsole>true</logViolationsToConsole>
<failOnViolation>true</failOnViolation>
<!-- Enable checks on all test source files -->
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<!-- Define our suppressions file location, and the key used to pass it to checkstyle.xml-->
<suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
<suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
</configuration>
<dependencies>
<!-- Override dependencies to use latest version of checkstyle -->
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.45.1</version>
</dependency>
</dependencies>
</plugin>
<!-- Used to generate a new release via Sonatype (see release profile). -->
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.7.0</version>
</plugin>
<!-- Used to generate JavaDocs for new releases (see release profile). -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.11.2</version>
<configuration>
<!-- Never fail a build based on Javadoc errors -->
<failOnError>false</failOnError>
</configuration>
</plugin>
<!-- Used to generate source JARs for new releases (see release profile). -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.1</version>
</plugin>
<!-- Used to sign new releases via GPG (see release profile). -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.2.7</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<!-- Specify our settings for new releases via 'mvn release:*' -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<!-- During release:prepare and release:perform, pass the "release" property to enable the
"release" profile (and enable/disable other profiles based on whether they need releasing) -->
<arguments>-Drelease</arguments>
<goals>deploy</goals>
<!-- Suggest tagging the release in SCM as "dspace-[version]" -->
<tagNameFormat>dspace-replicate-@{project.version}</tagNameFormat>
<!-- Auto-Version all modules the same as the parent module -->
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
</plugin>
<!-- Copy necessary Runtime Dependencies to /target/lib/
during build process. (We are only including Runtime
dependencies which are not a part of DSpace by default)-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!--Copy all DuraCloud dependencies to target-->
<!--Also copy Apache Commons Compress to target, as this
is not a DSpace dependency by default-->
<includeGroupIds>org.duracloud,org.apache.commons</includeGroupIds>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<!--
The 'release' profile is used by the 'maven-release-plugin' (see above)
to actually perform an dspace-replicate release to Maven central.
This profile contains settings which are ONLY enabled when performing
a DSpace module release. See also https://wiki.lyrasis.org/display/DSPACE/Release+Procedure
NOTE: You MUST trigger this profile by running "-Drelease"
(as that flag also triggers other modules to be enabled/disabled as necessary for release)
-->
<profile>
<id>release</id>
<activation>
<activeByDefault>false</activeByDefault>
<!-- Enable this profile if we are doing a release (-Drelease) -->
<property>
<name>release</name>
</property>
</activation>
<build>
<plugins>
<!-- Configure Nexus plugin for new releases via Sonatype.
See: http://central.sonatype.org/pages/apache-maven.html -->
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<!-- In your settings.xml, your username/password
MUST be specified for server 'ossrh' -->
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<!-- Disable autoclose of repository after upload, as this sometimes times out -->
<skipStagingRepositoryClose>true</skipStagingRepositoryClose>
<!-- Require manual verification / release to Maven Central -->
<autoReleaseAfterClose>false</autoReleaseAfterClose>
<!-- Increase Staging timeout to 10mins -->
<stagingProgressTimeoutMinutes>10</stagingProgressTimeoutMinutes>
</configuration>
</plugin>
<!-- For new releases, generate Source JAR files -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- For new releases, generate JavaDocs -->
<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>
</plugin>
<!-- Sign any new releases via GPG.
NOTE: you may optionally specify the "gpg.passphrase" in your settings.xml -->
<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>
</plugins>
</build>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>org.dspace</groupId>
<artifactId>dspace-api</artifactId>
<version>${dspace.version}</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</exclusion>
<exclusion>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.26.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.12.4</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.duraspace</groupId>
<artifactId>bagit-support</artifactId>
<version>${bagit-support.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.24.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.24.3</version>
<scope>test</scope>
</dependency>
<!-- JAXB is no longer bundled for java 17
compile only as this will be brought in through dspace-api in 8.x -->
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>${jaxb-api.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>${jaxb-runtime.version}</version>
<scope>compile</scope>
</dependency>
<!-- DuraCloud dependencies (used for replication to/from DuraCloud).
We only need to specify a dependency on the 'storeclient', as it already
declares dependencies on DuraCloud 'common' and 'storeprovider' APIs. -->
<dependency>
<groupId>org.duracloud</groupId>
<artifactId>storeclient</artifactId>
<version>${duracloud.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
<exclusion>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<licenses>
<license>
<name>DSpace BSD License</name>
<url>https://raw.github.com/DSpace/DSpace/main/LICENSE</url>
<distribution>repo</distribution>
<comments>
A BSD 3-Clause license for the DSpace codebase.
</comments>
</license>
</licenses>
<!--
GitHub repository used for version control
-->
<scm>
<connection>scm:git:git@github.com:DSpace/dspace-replicate.git</connection>
<developerConnection>scm:git:git@github.com:DSpace/dspace-replicate.git</developerConnection>
<url>git@github.com:DSpace/dspace-replicate.git</url>
<tag>dspace-replicate-8.1</tag>
</scm>
<!-- Configure our release repositories to use Sonatype.
See: http://central.sonatype.org/pages/apache-maven.html -->
<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>ossrh</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
<developers>
<developer>
<name>DSpace Committers</name>
<email>dspace-devel@googlegroups.com</email>
<url>https://wiki.lyrasis.org/display/DSPACE/DSpace+Committers</url>
</developer>
</developers>
</project>