mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-12 12:33:18 +00:00
333 lines
15 KiB
XML
333 lines
15 KiB
XML
<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>
|
|
<groupId>org.dspace.modules</groupId>
|
|
<artifactId>server</artifactId>
|
|
<packaging>war</packaging>
|
|
<name>DSpace Server Webapp:: Local Customizations</name>
|
|
<description>Overlay customizations.
|
|
This is probably a temporary solution to the build problems. We like to investigate about
|
|
the possibility to remove the overlays enable a more flexible extension mechanism.
|
|
The use of web-fragment and spring mvc technology allow us to add request handlers
|
|
just adding new jar in the classloader</description>
|
|
|
|
<parent>
|
|
<artifactId>modules</artifactId>
|
|
<groupId>org.dspace</groupId>
|
|
<version>8.0-SNAPSHOT</version>
|
|
<relativePath>..</relativePath>
|
|
</parent>
|
|
|
|
<properties>
|
|
<!-- This is the path to the root [dspace-src] directory. -->
|
|
<root.basedir>${basedir}/../../..</root.basedir>
|
|
</properties>
|
|
|
|
<build>
|
|
<plugins>
|
|
<!-- Unpack the "additions" module into our target directory,
|
|
so that any custom classes in that module can be included
|
|
into this WAR's WEB-INF/classes (see maven-war-plugin below). -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>unpack</id>
|
|
<phase>prepare-package</phase>
|
|
<goals>
|
|
<goal>unpack-dependencies</goal>
|
|
</goals>
|
|
<configuration>
|
|
<includeGroupIds>org.dspace.modules</includeGroupIds>
|
|
<includeArtifactIds>additions</includeArtifactIds>
|
|
<!--NOTE: by default this will also unpack transitive dependencies. To disable, uncomment this next line:
|
|
<excludeTransitive>true</excludeTransitive>
|
|
-->
|
|
<outputDirectory>${project.build.directory}/additions</outputDirectory>
|
|
<excludes>META-INF/**</excludes>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-war-plugin</artifactId>
|
|
<configuration>
|
|
<archiveClasses>false</archiveClasses>
|
|
<!-- Filter the web.xml (needed for IDE compatibility/debugging) -->
|
|
<filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
|
|
<!-- Copy any 'additions' (see m-dependency-p above) into WEB-INF/classes.
|
|
This ensures they are loaded prior to dependencies in WEB-INF/lib
|
|
(per Servlet 3.0 spec, section 10.5), and allows them to override
|
|
default classes in this WAR -->
|
|
<webResources>
|
|
<resource>
|
|
<directory>${project.build.directory}/additions</directory>
|
|
<targetPath>WEB-INF/classes</targetPath>
|
|
</resource>
|
|
</webResources>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<phase>prepare-package</phase>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<!-- This plugin allows us to run a Groovy script in our Maven POM
|
|
(see: https://groovy.github.io/gmaven/groovy-maven-plugin/execute.html )
|
|
We are generating a OS-agnostic version (agnostic.build.dir) of
|
|
the ${project.build.directory} property (full path of target dir).
|
|
This is needed by the Surefire & Failsafe plugins (see below)
|
|
to initialize the Unit Test environment's dspace.cfg file.
|
|
Otherwise, the Unit Test Framework will not work on Windows OS.
|
|
This Groovy code was mostly borrowed from:
|
|
http://stackoverflow.com/questions/3872355/how-to-convert-file-separator-in-maven
|
|
-->
|
|
<plugin>
|
|
<groupId>org.codehaus.gmaven</groupId>
|
|
<artifactId>groovy-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>setproperty</id>
|
|
<phase>initialize</phase>
|
|
<goals>
|
|
<goal>execute</goal>
|
|
</goals>
|
|
<configuration>
|
|
<source>
|
|
project.properties['agnostic.build.dir'] = project.build.directory.replace(File.separator, '/');
|
|
log.info("Initializing Maven property 'agnostic.build.dir' to: {}", project.properties['agnostic.build.dir']);
|
|
</source>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
<profiles>
|
|
<!-- Setup the Unit Test Environment (when -DskipUnitTests=false) -->
|
|
<profile>
|
|
<id>unit-test-environment</id>
|
|
<activation>
|
|
<activeByDefault>false</activeByDefault>
|
|
<property>
|
|
<name>skipUnitTests</name>
|
|
<value>false</value>
|
|
</property>
|
|
</activation>
|
|
<build>
|
|
<plugins>
|
|
<!-- Unit Testing setup: This plugin unzips the
|
|
'testEnvironment.zip' file (created by dspace-parent POM), into
|
|
the 'target/testing/' folder, to essentially create a test
|
|
install of DSpace, against which Tests can be run. -->
|
|
<plugin>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<configuration>
|
|
<outputDirectory>${project.build.directory}/testing</outputDirectory>
|
|
<artifactItems>
|
|
<artifactItem>
|
|
<groupId>org.dspace</groupId>
|
|
<artifactId>dspace-parent</artifactId>
|
|
<version>${project.version}</version>
|
|
<type>zip</type>
|
|
<classifier>testEnvironment</classifier>
|
|
</artifactItem>
|
|
</artifactItems>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>setupUnitTestEnvironment</id>
|
|
<phase>generate-test-resources</phase>
|
|
<goals>
|
|
<goal>unpack</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<!-- Run Unit Testing! This plugin just kicks off the tests (when enabled). -->
|
|
<plugin>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<systemPropertyVariables>
|
|
<!-- Specify the dspace.dir to use for test environment -->
|
|
<!-- ${agnostic.build.dir} is set dynamically by groovy-maven-plugin above -->
|
|
<!-- This system property is loaded by AbstractDSpaceTest to initialize the test environment -->
|
|
<dspace.dir>${agnostic.build.dir}/testing/dspace/</dspace.dir>
|
|
<!-- Turn off any DSpace logging -->
|
|
<dspace.log.init.disable>true</dspace.log.init.disable>
|
|
<solr.install.dir>${agnostic.build.dir}/testing/dspace/solr/</solr.install.dir>
|
|
</systemPropertyVariables>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
<dependencies>
|
|
<!-- When running tests, also include test classes from dspace-server-webapp
|
|
(this test-jar is only built when tests are enabled). -->
|
|
<dependency>
|
|
<groupId>org.dspace</groupId>
|
|
<artifactId>dspace-server-webapp</artifactId>
|
|
<type>test-jar</type>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
</profile>
|
|
|
|
<!-- Setup the Integration Test Environment (when -DskipIntegrationTests=false) -->
|
|
<profile>
|
|
<id>integration-test-environment</id>
|
|
<activation>
|
|
<activeByDefault>false</activeByDefault>
|
|
<property>
|
|
<name>skipIntegrationTests</name>
|
|
<value>false</value>
|
|
</property>
|
|
</activation>
|
|
<build>
|
|
<plugins>
|
|
<!-- Integration Testing setup: This plugin unzips the
|
|
'testEnvironment.zip' file (created by dspace-parent POM), into
|
|
the 'target/testing/' folder, to essentially create a test
|
|
install of DSpace, against which Tests can be run. -->
|
|
<plugin>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<configuration>
|
|
<outputDirectory>${project.build.directory}/testing</outputDirectory>
|
|
<artifactItems>
|
|
<artifactItem>
|
|
<groupId>org.dspace</groupId>
|
|
<artifactId>dspace-parent</artifactId>
|
|
<version>${project.version}</version>
|
|
<type>zip</type>
|
|
<classifier>testEnvironment</classifier>
|
|
</artifactItem>
|
|
</artifactItems>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>setupIntegrationTestEnvironment</id>
|
|
<phase>pre-integration-test</phase>
|
|
<goals>
|
|
<goal>unpack</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<!-- Run Integration Testing! This plugin just kicks off the tests (when enabled). -->
|
|
<plugin>
|
|
<artifactId>maven-failsafe-plugin</artifactId>
|
|
<configuration>
|
|
<systemPropertyVariables>
|
|
<!-- Specify the dspace.dir to use for test environment -->
|
|
<!-- ${agnostic.build.dir} is set dynamically by groovy-maven-plugin above -->
|
|
<dspace.dir>${agnostic.build.dir}/testing/dspace/</dspace.dir>
|
|
<!-- Turn off any DSpace logging -->
|
|
<dspace.log.init.disable>true</dspace.log.init.disable>
|
|
<solr.install.dir>${agnostic.build.dir}/testing/dspace/solr/</solr.install.dir>
|
|
</systemPropertyVariables>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
<dependencies>
|
|
<!-- When running tests, also include test classes from dspace-server-webapp
|
|
(this test-jar is only built when tests are enabled). -->
|
|
<dependency>
|
|
<groupId>org.dspace</groupId>
|
|
<artifactId>dspace-server-webapp</artifactId>
|
|
<type>test-jar</type>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
</profile>
|
|
</profiles>
|
|
|
|
<dependencies>
|
|
|
|
<dependency>
|
|
<groupId>org.dspace.modules</groupId>
|
|
<artifactId>additions</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.dspace</groupId>
|
|
<artifactId>dspace-server-webapp</artifactId>
|
|
<classifier>classes</classifier>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.dspace</groupId>
|
|
<artifactId>dspace-server-webapp</artifactId>
|
|
<type>war</type>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.solr</groupId>
|
|
<artifactId>solr-solrj</artifactId>
|
|
<version>${solr.client.version}</version>
|
|
</dependency>
|
|
|
|
<!-- Test Dependencies -->
|
|
<dependency>
|
|
<groupId>org.dspace</groupId>
|
|
<artifactId>dspace-api</artifactId>
|
|
<type>test-jar</type>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.dspace</groupId>
|
|
<artifactId>dspace-server-webapp</artifactId>
|
|
<type>test-jar</type>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-test</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.security</groupId>
|
|
<artifactId>spring-security-test</artifactId>
|
|
<version>${spring-security.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.jayway.jsonpath</groupId>
|
|
<artifactId>json-path-assert</artifactId>
|
|
<version>${json-path.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>junit</groupId>
|
|
<artifactId>junit</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.h2database</groupId>
|
|
<artifactId>h2</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.mockito</groupId>
|
|
<artifactId>mockito-inline</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<!-- Solr Core is only needed for Integration Tests (to run a MockSolrServer) -->
|
|
<!-- The following Solr / Lucene dependencies also support integration tests -->
|
|
<dependency>
|
|
<groupId>org.apache.solr</groupId>
|
|
<artifactId>solr-core</artifactId>
|
|
<version>${solr.client.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-analyzers-icu</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
</dependencies>
|
|
|
|
</project>
|