jzy3d-api/pom.xml

655 lines
17 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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jzy3d</groupId>
<artifactId>jzy3d-all</artifactId>
<version>2.2.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Jzy3d Master Project</name>
<description>A java API to draw 3d charts.</description>
<url>http://www.jzy3d.org</url>
<licenses>
<license>
<name>The (New) BSD License</name>
<url>https://opensource.org/licenses/bsd-license.php</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<id>martin.pernollet</id>
<name>Martin Pernollet</name>
<email>martin@jzy3d.org</email>
<url>https://twitter.com/jzy3d</url>
</developer>
<developer>
<id>nils.hoffmann</id>
<name>Nils Hoffmann</name>
</developer>
<developer>
<id>juan.barandiaran</id>
<name>Juan Barandiaran</name>
</developer>
<developer>
<id>jacob.filik</id>
<name>Jacob Filik</name>
</developer>
<developer>
<id>hannes.wellmann</id>
<name>Hannes Wellmann</name>
</developer>
</developers>
<modules>
<module>jzy3d-core</module>
<module>jzy3d-core-awt</module>
<!-- <module>jzy3d-core-swt</module> -->
<module>jzy3d-jGL</module>
<module>jzy3d-emul-gl-awt</module>
<!-- <module>jzy3d-emul-gl-swt</module> -->
<module>jzy3d-native-jogl-core</module>
<module>jzy3d-native-jogl-awt</module>
<module>jzy3d-native-jogl-swing</module>
<module>jzy3d-native-jogl-swt</module>
<module>jzy3d-native-jogl-newt</module>
<!-- <module>jzy3d-native-jogl-javafx</module> -->
<module>jzy3d-tester</module>
<module>jzy3d-tester-native</module>
<module>jzy3d-depthpeeling</module>
<module>jzy3d-tutorials</module>
<!-- Maths -->
<module>jzy3d-jdt-core</module>
<module>jzy3d-svm-mapper</module>
<module>jzy3d-tools-libsvm</module>
<!-- Report -->
<module>jzy3d-io-xls</module>
<module>jzy3d-io-reports</module>
<!-- Bundle -->
<module>jzy3d-everything</module>
<!-- Integration tests -->
<module>jzy3d-tests-java9</module>
</modules>
<scm>
<connection>scm:git:git@github.com:jzy3d/jzy3d-api.git</connection>
<tag>jzy3d-all-2.1.0</tag>
</scm>
<issueManagement>
<system>Github</system>
<url>https://github.com/jzy3d/jzy3d-api/issues</url>
</issueManagement>
<!-- Used to deploy to Jzy3d repository -->
<distributionManagement>
<repository>
<id>jzy3d-ftp</id>
<name>Jzy3d Maven Folder</name>
<url>ftp://ftp.cluster013.ovh.net/maven/releases</url>
</repository>
<snapshotRepository>
<id>jzy3d-ftp</id>
<name>Jzy3d Maven Folder SNAPSHOTS</name>
<url>ftp://ftp.cluster013.ovh.net/maven/snapshots</url>
</snapshotRepository>
</distributionManagement>
<!--<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> -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<version.java>1.8</version.java>
<version.swt>3.116.100</version.swt>
</properties>
<!-- Define default versions for all dependencies -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1.1-jre</version>
</dependency>
<dependency>
<groupId>com.miglayout</groupId>
<artifactId>miglayout</artifactId>
<version>3.7.4</version>
</dependency>
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.5.1</version>
</dependency>
<dependency>
<groupId>net.sf.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-excelant</artifactId>
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.swt</artifactId>
<version>${version.swt}</version>
</dependency>
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.swt.gtk.linux.x86_64</artifactId>
<optional>true</optional>
<version>${version.swt}</version>
</dependency>
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.swt.gtk.linux.aarch64</artifactId>
<optional>true</optional>
<version>${version.swt}</version>
</dependency>
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.swt.win32.win32.x86_64</artifactId>
<optional>true</optional>
<version>${version.swt}</version>
</dependency>
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.swt.cocoa.macosx.x86_64</artifactId>
<optional>true</optional>
<version>${version.swt}</version>
</dependency>
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.swt.cocoa.macosx.aarch64</artifactId>
<optional>true</optional>
<version>${version.swt}</version>
</dependency>
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.jface</artifactId>
<version>3.12.1</version>
</dependency>
<!-- See pom.xml of jzy3d-native-jogl-core -->
<!-- <dependency> <groupId>org.jogamp.gluegen</groupId> <artifactId>gluegen-rt-main</artifactId>
<version>2.3.2</version> </dependency> <dependency> <groupId>org.jogamp.jogl</groupId>
<artifactId>jogl-all-main</artifactId> <version>2.3.2</version> </dependency> -->
<dependency>
<groupId>org.smurn</groupId>
<artifactId>jply</artifactId>
<version>0.2.1</version>
</dependency>
<dependency>
<groupId>org.tallison</groupId>
<artifactId>jmatio</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10</version>
</dependency>
<dependency>
<!-- Some modules use junit not only in their test classes but also in
their main classes. Therefore manage the version in this section -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
</dependency>
<dependency>
<groupId>com.diogonunes</groupId>
<artifactId>JColor</artifactId>
<version>5.2.0</version>
</dependency>
</dependencies>
</dependencyManagement>
<!-- Define dependencies that should be used in all submodules -->
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>2.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.8.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- Define the repository where Jzy3d dependencies can be found -->
<repositories>
<repository>
<id>jzy3d-releases</id>
<name>Jzy3d Releases</name>
<url>https://maven.jzy3d.org/releases/</url>
</repository>
<repository>
<id>jzy3d-snapshots</id>
<name>Jzy3d Snapshots</name>
<url>https://maven.jzy3d.org/snapshots/</url>
</repository>
</repositories>
<build>
<!-- Define default versions for all build plugins -->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<!-- Ensure stack trace get displayed -->
<trimStackTrace>false</trimStackTrace>
<!-- Parallel tests DISABLE PARALLEL TEST OTHERWISE CANVAS DO NOT UPDATE
PROPERLY (?!) <parallel>classes</parallel> <useUnlimitedThreads>true</useUnlimitedThreads>
<forkCount>1</forkCount> -->
<!-- Configure jogl to wait up to 20 seconds before throwing a timeout
exception. Mainly required when running on Github CI since MacOS VM use a
software implementation -->
<argLine>-Djogamp.common.utils.locks.Lock.timeout=20000</argLine>
<!--Want IT ITest to be ran only when using -Pintegration-test, so
disable for default profile -->
<excludes>
<exclude>**/ITTest*.java</exclude>
<!-- This one is very sensitive to platform specific frame sizing -->
<exclude>**/TestCameraNative_Viewport.java</exclude>
</excludes>
<!-- Want to support these two test name patterns -->
<includes>
<include>**/Test*.java</include>
<include>**/*Test.java</include>
</includes>
<!-- This is necessary on Windows to avoid an exception if a test opens
a chart https://github.com/jzy3d/jogl/issues/4 -->
<argLine>--add-exports java.base/java.lang=ALL-UNNAMED
--add-exports java.desktop/sun.awt=ALL-UNNAMED
--add-exports
java.desktop/sun.java2d=ALL-UNNAMED</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.0.0-M5</version>
</plugin>
</plugins>
</pluginManagement>
<!-- ****************************************************************** -->
<!-- ********************** BUILD CONFIGURATION *********************** -->
<!-- ****************************************************************** -->
<plugins>
<!-- COMPILER AND JAVA VERSION CONFIGURATION -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${version.java}</source>
<target>${version.java}</target>
</configuration>
</plugin>
<!-- SOURCE JAR -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- TEST JAR -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- JAVADOC JAR -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<additionalparam>-Xdoclint:none</additionalparam>
<doclint>none</doclint>
<source>8</source>
<quiet>true</quiet> <!-- only show warnings/errors -->
<failOnError>false</failOnError>
<additionalJOption>--no-module-directories</additionalJOption>
<configuration>
<docfilessubdirs>true</docfilessubdirs>
</configuration>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>verify</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
<execution>
<id>aggregate</id>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- RELEASE -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
</plugin>
<!--<plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.7</version> <extensions>true</extensions> <configuration> <serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl> <autoReleaseAfterClose>true</autoReleaseAfterClose>
TO BE COMMENTED <skipStagingRepositoryClose>true</skipStagingRepositoryClose>
</configuration> </plugin> -->
<!-- SIGN ARTIFACT FOR DEPLOYING TO SONATYPE -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<configuration>
<skip>true</skip>
</configuration>
<executions>
<execution>
<id>sign-artifacts</id>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- TEST EVALUATION -->
<!-- mvn test-compile org.pitest:pitest-maven:mutationCoverage -DjvmArgs=-Djava.awt.headless=false -->
<!--
https://stackoverflow.com/questions/49691927/proper-setup-for-pitest-maven-report-aggregate-goal
-->
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.8.0</version>
</plugin>
</plugins>
<!-- DEPLOY TO FTP -->
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ftp</artifactId>
<version>2.10</version>
</extension>
</extensions>
</build>
<reporting>
<plugins>
<!-- Get coverage with mvn cobertura:cobertura -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
<outputDirectory>./target/tmpCobertura</outputDirectory>
<formats>
<format>html</format>
</formats>
<aggregate>true</aggregate>
</configuration>
</plugin>
</plugins>
</reporting>
<profiles>
<profile>
<id>disable-java8-doclint</id>
<activation>
<jdk>[1.8,)</jdk>
</activation>
<properties>
<additionalparam>-Xdoclint:none</additionalparam>
</properties>
</profile>
<!-- CONFIGURATION FOR RUNNING INTEGRATION TESTS -->
<profile>
<id>integration-tests</id>
<build>
<plugins>
<!-- Use surefire to run integration tests which success may depend
on GPU. Run them with mvn verify -Pintegration-tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<includes>
<include>**/Test*.java</include>
<include>**/*Test.java</include>
<include>**/ITTest*.java</include>
</includes>
<!-- DISABLE PARALLEL TEST OTHERWISE CANVAS DO NOT UPDATE PROPERLY
(?!) Parallel tests <parallel>classes</parallel> <useUnlimitedThreads>true</useUnlimitedThreads> -->
</configuration>
</plugin>
<!-- DO NOT USE FAILSAFE TESTS FOR RUNNING IT TESTS, BUT RATHER RUN
THEM FROM WITH SUREFIRE Use failsafe to run integration tests which success
may depend on GPU. Run them with mvn verify -Pintegration-tests -->
<!--<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId>
<version>3.0.0-M5</version> <configuration> < includes> <include>**/ITTest*.java</include>
</includes> </configuration> <executions> <execution> <id>integration-test</id>
<goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution>
</executions> </plugin> -->
</plugins>
</build>
</profile>
</profiles>
</project>