poi/sonar/pom.xml

361 lines
16 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.apache.poi</groupId>
<artifactId>poi-parent</artifactId>
<packaging>pom</packaging>
<version>4.1.2-SNAPSHOT</version>
<name>Apache POI - the Java API for Microsoft Documents</name>
<description>Maven build of Apache POI for Sonar checks</description>
<url>http://poi.apache.org/</url>
<mailingLists>
<mailingList>
<name>POI Users List</name>
<subscribe>user-subscribe@poi.apache.org</subscribe>
<unsubscribe>user-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-user/</archive>
</mailingList>
<mailingList>
<name>POI Developer List</name>
<subscribe>dev-subscribe@poi.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-dev/</archive>
</mailingList>
</mailingLists>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<organization>
<name>Apache Software Foundation</name>
<url>http://www.apache.org/</url>
</organization>
<issueManagement>
<system>Bugzilla</system>
<url>https://bz.apache.org/bugzilla/</url>
</issueManagement>
<scm>
<connection>scm:svn:https://svn.apache.org/repos/asf/poi/trunk</connection>
<developerConnection>scm:svn:https://svn.apache.org/repos/asf/poi/trunk</developerConnection>
<url>https://svn.apache.org/viewvc/poi</url>
</scm>
<repositories>
<repository>
<id>apache-releases-repo</id>
<name>apache releases repo</name>
<url>https://repository.apache.org/content/repositories/releases</url>
</repository>
</repositories>
<modules>
<module>main</module>
<module>ooxml-schema</module>
<module>ooxml-schema-encryption</module>
<module>ooxml-schema-security</module>
<module>ooxml</module>
<module>scratchpad</module>
<module>excelant</module>
<module>examples</module>
<module>integration-test</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Try to disable running SVN blame as it causes errors here because the source is copied from the actual SVN location here! -->
<sonar.scm.disabled>true</sonar.scm.disabled>
<sonar.organization>apache</sonar.organization>
<sonar.projectKey>poi-parent</sonar.projectKey>
<sonar.moduleKey>${artifactId}</sonar.moduleKey>
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
<sonar.jacoco.reportPaths>target/jacoco.exec</sonar.jacoco.reportPaths>
<sonar.coverage.jacoco.xmlReportPaths>target/site/jacoco/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
<!-- define some of the third-party or plugin-versions globally to use the same in all modules -->
<xmlbeans.version>3.1.0</xmlbeans.version>
<junit.version>4.13</junit.version>
<xmlunit.version>2.6.3</xmlunit.version>
<mockito.version>2.13.0</mockito.version>
<maven.plugin.resources.version>3.1.0</maven.plugin.resources.version>
<maven.plugin.jar.version>3.2.0</maven.plugin.jar.version>
<maven.plugin.clean.version>3.1.0</maven.plugin.clean.version>
<maven.plugin.download.version>1.1.0</maven.plugin.download.version>
<maven.plugin.antrun.version>1.8</maven.plugin.antrun.version>
<maven.plugin.surefire.version>3.0.0-M4</maven.plugin.surefire.version>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.plugin.surefire.version}</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>${maven.plugin.surefire.version}</version>
</dependency>
</dependencies>
<configuration>
<systemPropertyVariables>
<POI.testdata.path>../../test-data</POI.testdata.path>
<java.awt.headless>true</java.awt.headless>
<org.apache.poi.util.POILogger>org.apache.poi.util.NullLogger</org.apache.poi.util.POILogger>
</systemPropertyVariables>
<!-- use to following to analyze OOM issues: -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -->
<argLine>@{argLine} -Duser.language=en -Duser.country=US -Xmx1024m -Djava.io.tmpdir=${basedir}/target/tmp
</argLine>
<excludes>
<exclude>**/All*Tests.java</exclude>
<exclude>**/TestUnfixedBugs.java</exclude>
<exclude>**/TestcaseRecordInputStream.java</exclude>
<exclude>**/POITestCase.java</exclude>
<!-- TODO: error about no public construct, seems to run with JUnit 3.8... -->
<exclude>**/TestWordToConverterSuite*.java</exclude>
<exclude>**/TestExcelConverterSuite*.java</exclude>
</excludes>
<!--test>TestPPTX2PNG</test-->
<!--parallel>both</parallel>
<threadCount>10</threadCount-->
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.5</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-core</artifactId>
<version>${xmlunit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<profiles>
<!-- We need a fair amount of memory to compile the xml schema, -->
<!-- but limit it in case it goes wrong! -->
<!-- Pick the right amount based on 32 vs 64 bit jvm -->
<!-- ********************************************************** -->
<!-- If you are using IntelliJ, you might want to check -->
<!-- http://stackoverflow.com/questions/24115142 -->
<!-- ********************************************************** -->
<profile>
<id>32bitstuff</id>
<activation>
<property>
<name>sun.arch.data.model</name>
<value>32</value>
</property>
</activation>
<properties>
<maven.compiler.maxmem>512m</maven.compiler.maxmem>
<argLine>-Xmx768m</argLine>
</properties>
</profile>
<profile>
<id>64bitstuff</id>
<activation>
<property>
<name>sun.arch.data.model</name>
<value>64</value>
</property>
</activation>
<properties>
<maven.compiler.maxmem>768m</maven.compiler.maxmem>
<argLine>-Xmx1024m</argLine>
</properties>
</profile>
<profile>
<id>xmlbean</id>
<activation>
<file>
<exists>xmlbeans.marker</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>xmlbeans-maven-plugin</artifactId>
<version>2.3.3</version>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<goal>xmlbeans</goal>
</goals>
<configuration>
<schemaDirectory>${basedir}/target/schemas</schemaDirectory>
<javaSource>1.5</javaSource>
<noJavac>true</noJavac>
<noUpa>${xmlbeans.noUpa}</noUpa>
<noPvr>${xmlbeans.noPvr}</noPvr>
<xmlConfigs>
<xmlConfig implementation="java.io.File">
${basedir}/../../src/ooxml/resources/org/apache/poi/poifs/crypt/encryptionCertificate.xsdconfig
</xmlConfig>
<xmlConfig implementation="java.io.File">
${basedir}/../../src/ooxml/resources/org/apache/poi/poifs/crypt/encryptionInfo.xsdconfig
</xmlConfig>
<xmlConfig implementation="java.io.File">
${basedir}/../../src/ooxml/resources/org/apache/poi/poifs/crypt/encryptionPassword.xsdconfig
</xmlConfig>
<xmlConfig implementation="java.io.File">
${basedir}/../../src/ooxml/resources/org/apache/poi/schemas/ooxmlSchemas.xsdconfig
</xmlConfig>
</xmlConfigs>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>${maven.plugin.antrun.version}</version>
<executions>
<execution>
<id>copy-xmltype-and-xsdconfig</id>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<copy todir="${basedir}/target/schemas">
<fileset dir="${basedir}/../../src/ooxml/resources/org/apache/poi/schemas" excludes="XAdES*.xsd"/>
</copy>
</target>
</configuration>
</execution>
<execution>
<id>replace-xmltypeloader</id>
<phase>process-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<!-- the space between "public static" is on purpose to prevent double execution -->
<property name="loaderMethod"><![CDATA[
private static java.lang.ref.SoftReference<org.apache.xmlbeans.SchemaTypeLoader> typeLoader;
private static synchronized org.apache.xmlbeans.SchemaTypeLoader getTypeLoader() {
org.apache.xmlbeans.SchemaTypeLoader stl = (typeLoader == null) ? null : typeLoader.get();
if (stl == null) {
stl = org.apache.xmlbeans.XmlBeans.typeLoaderForClassLoader(\2.class.getClassLoader());
typeLoader = new java.lang.ref.SoftReference(stl);
}
return stl;
}
public static \2 newInstance\(\) \{]]></property>
<fileset id="xsrc" dir="${basedir}/target/generated-sources/xmlbeans" includes="**/*.java" excludes="**/impl/**"/>
<replaceregexp byline="true"
match="(\s*)public static ([^ ]+) newInstance\(\) \{"
replace="${loaderMethod}">
<fileset refid="xsrc"/>
</replaceregexp>
<replace>
<fileset refid="xsrc"/>
<replacetoken>org.apache.xmlbeans.XmlBeans.getContextTypeLoader
</replacetoken>
<replacevalue>getTypeLoader</replacevalue>
</replace>
<!-- remove deprecated warnings, as we prefer the array methods - see #56854 -->
<replace>
<fileset refid="xsrc"/>
<replacetoken><![CDATA[ * @deprecated
]]></replacetoken>
</replace>
</target>
</configuration>
</execution>
<execution>
<id>remove-xmltypeloader-from-schema-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<touch file="${basedir}/target/generated-sources/xmlbeans/.staleFlag"/>
<delete dir="${basedir}/target/classes/org/apache"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>${xmlbeans.version}</version>
</dependency>
</dependencies>
</profile>
</profiles>
</project>