Skip to content
Permalink
8778659c65
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
589 lines (580 sloc) 21.2 KB
<?xml version="1.0" encoding="UTF-8"?>
<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>net.talvi.puffinplot</groupId>
<artifactId>puffinplot</artifactId>
<version>1.5-SNAPSHOT</version>
<name>PuffinPlot</name>
<url>http://talvi.net/puffinplot/</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<build.date>${maven.build.timestamp}</build.date>
<asciidoctor.maven.plugin.version>2.0.0-RC.1</asciidoctor.maven.plugin.version>
<asciidoctorj.pdf.version>1.5.0-beta.8</asciidoctorj.pdf.version>
<asciidoctorj.version>2.2.0</asciidoctorj.version>
<jruby.version>9.2.9.0</jruby.version>
</properties>
<repositories>
<repository>
<!-- freehep-export, freehep-swing, freehep-util, and freehep-xml
are not on Maven Central, so we have to add the FreeHEP
repository to use them. -->
<id>freehep</id>
<name>FreeHEP</name>
<url>http://java.freehep.org/maven2</url>
</repository>
<repository>
<!-- This repository provides a Maven proxy for the official
RubyGems.org repository, which is needed to build the Asciidoc
manual. -->
<id>rubygems-proxy</id>
<name>Rubygems Proxy</name>
<url>http://rubygems-proxy.torquebox.org/releases</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<!-- Needed for the 1.2.1-SNAPSHOT version of appbundle-maven-plugin. -->
<id>snapshots-repo</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-svggen</artifactId>
<version>1.10</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-awt-util</artifactId>
<version>1.10</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-i18n</artifactId>
<version>1.10</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-dom</artifactId>
<version>1.10</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.4</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.19</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.freehep</groupId>
<artifactId>freehep-graphicsio-pdf</artifactId>
<version>2.4</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.freehep</groupId>
<artifactId>freehep-export</artifactId>
<version>2.1.3</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.freehep</groupId>
<artifactId>freehep-graphics2d</artifactId>
<version>2.4</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.freehep</groupId>
<artifactId>freehep-io</artifactId>
<version>2.2.2</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.freehep</groupId>
<artifactId>freehep-swing</artifactId>
<version>2.0.11</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.freehep</groupId>
<artifactId>freehep-util</artifactId>
<version>2.1.2</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.freehep</groupId>
<artifactId>freehep-graphicsio-svg</artifactId>
<version>2.4</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.freehep</groupId>
<artifactId>freehep-xml</artifactId>
<version>2.1.10</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.freehep</groupId>
<artifactId>freehep-graphicsio</artifactId>
<version>2.4</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.yuvimasory</groupId>
<artifactId>orange-extensions</artifactId>
<version>1.3.0</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.23.0</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>gov.nist.math</groupId>
<artifactId>jama</artifactId>
<version>1.0.3</version>
<optional>true</optional>
</dependency>
<dependency>
<!-- jgit is used to extract version information from the
git repository without introducing an external dependency on
the git executable. -->
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit</artifactId>
<version>5.7.0.202003110725-r</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<id>read-release-properties</id>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>${basedir}/release.properties</file>
</files>
</configuration>
</execution>
<execution>
<id>write-properties-file-1</id>
<phase>generate-resources</phase>
<goals>
<goal>write-project-properties</goal>
</goals>
<configuration>
<outputFile>
${project.build.outputDirectory}/app.properties
</outputFile>
</configuration>
</execution>
<execution>
<id>write-properties-file-2</id>
<phase>generate-resources</phase>
<goals>
<goal>write-project-properties</goal>
</goals>
<configuration>
<outputFile>
${project.build.outputDirectory}/net/talvi/puffinplot/build.properties
</outputFile>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<!-- A plugin which fetches ruby gems and installs them
in the Maven target directory. -->
<groupId>de.saumya.mojo</groupId>
<artifactId>gem-maven-plugin</artifactId>
<version>1.1.8</version>
<executions>
<execution>
<id>install-gems-for-asciidoctor</id>
<goals>
<!-- We use the "sets" goal to explicitly specify versions
of all needed gems (including direct and transitive
dependencies), to avoid problems with automatic
dependency resolution for gems in Maven as described in
https://github.com/asciidoctor/asciidoctor-maven-examples/issues/41#issuecomment-171810511
. Dependencies and their versions were determined by
installing asciidoctor-bibtex using the standard gem
tool and thereafter examining the contents of ~/.gem.
-->
<goal>sets</goal>
</goals>
<configuration>
<gems>
<asciidoctor-bibtex>0.7.1</asciidoctor-bibtex>
<bibtex-ruby>4.4.7</bibtex-ruby>
<citeproc>1.0.10</citeproc>
<citeproc-ruby>1.1.12</citeproc-ruby>
<csl>1.5.1</csl>
<csl-styles>1.0.1.10</csl-styles>
<latex-decode>0.3.1</latex-decode>
<namae>1.0.1</namae>
</gems>
</configuration>
</execution>
<execution>
<id>run-manual-version-script</id>
<phase>generate-resources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<file>${project.basedir}/src/main/resources/ruby-build-scripts/generate-manual-version-info.rb</file>
<execArgLines>
<execArgLine>${project.basedir}</execArgLine>
</execArgLines>
<outputFile>${project.basedir}/src/main/asciidoc/version.adoc</outputFile>
</configuration>
</execution>
<execution>
<id>run-commit-properties-script</id>
<phase>generate-resources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<file>${project.basedir}/src/main/resources/ruby-build-scripts/generate-commit-properties.rb</file>
<execArgLines>
<execArgLine>${project.basedir}</execArgLine>
<execArgLine>${project.build.directory}/classes/net/talvi/puffinplot/build.properties</execArgLine>
</execArgLines>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>javadoc</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>net.talvi.puffinplot.Main</mainClass>
</transformer>
</transformers>
<minimizeJar>true</minimizeJar>
<createDependencyReducedPom>false</createDependencyReducedPom>
<artifactSet>
<excludes>
<!-- Don't include any ruby gems in the jar, since they're
only needed at build time. -->
<exclude>rubygems:*</exclude>
</excludes>
</artifactSet>
<filters>
<filter>
<!-- gem-maven-plugin automatically adds any executed ruby
scripts to the project's resources. As far as I can
tell, this can't be disabled, but we can at least
exclude them from the jar.
-->
<artifact>net.talvi.puffinplot:puffinplot</artifact>
<excludes>
<exclude>ruby-build-scripts/**</exclude>
</excludes>
</filter>
<filter>
<!-- Remove signatures from component to avoid an "Invalid
signature file digest for Manifest main attributes"
error due to the signature from a component jar not
matching the uber-jar.
-->
<artifact>*:*</artifact>
<excludeDefaults>false</excludeDefaults>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
<includes>
<include>org/apache/xalan/res/XSLTErrorResources</include>
<include>org/apache/xml/serializer/ToXMLStream</include>
</includes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>sh.tak.appbundler</groupId>
<artifactId>appbundle-maven-plugin</artifactId>
<!-- Versions prior to 1.2.1 don't support excludeDependencies.
-->
<version>1.2.1-SNAPSHOT</version>
<configuration>
<mainClass>net.talvi.puffinplot.Main</mainClass>
<generateDiskImageFile>false</generateDiskImageFile>
<bundleName>PuffinPlot</bundleName>
<excludeDependencies>true</excludeDependencies>
<!-- Icons path must be relative to project base directory. -->
<iconFile>src/main/resources/net/talvi/puffinplot/icons/PuffinPlot.icns</iconFile>
<jvmOptions>
<jvmOption>-Dapple.awt.application.name=PuffinPlot</jvmOption>
</jvmOptions>
<dictionaryFile>net/talvi/puffinplot/Info.plist.template</dictionaryFile>
<jvmVersion>1.8+</jvmVersion>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>bundle</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<configuration>
<descriptor>src/assembly/bin.xml</descriptor>
<finalname>puffinplot-${project.version}</finalname>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- for inheritance merges -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</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>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>${asciidoctor.maven.plugin.version}</version>
<dependencies>
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj-pdf</artifactId>
<version>${asciidoctorj.pdf.version}</version>
</dependency>
<!-- Comment this section to use the default jruby artifact provided by the plugin -->
<dependency>
<groupId>org.jruby</groupId>
<artifactId>jruby-complete</artifactId>
<version>${jruby.version}</version>
</dependency>
<!-- Comment this section to use the default AsciidoctorJ artifact provided by the plugin -->
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj</artifactId>
<version>${asciidoctorj.version}</version>
</dependency>
</dependencies>
<configuration>
<sourceDirectory>src/main/asciidoc</sourceDirectory>
<!-- Attributes common to all output formats -->
<attributes>
<sourcedir>${project.build.sourceDirectory}</sourcedir>
</attributes>
<gemPath>${project.build.directory}/rubygems</gemPath>
<requires>asciidoctor-bibtex</requires>
<sourceDocumentName>manual.adoc</sourceDocumentName>
<resources>
<!-- We don't want to copy any resources. Omitting the resources
section entirely copies all the resources in the asciidoc
source directory. Including a resources section with an
empty resources subsection omits the asciidoc resources but
copies the contents of src/main/java (!). So we need this
resources section which explicitly excludes src/main/java.
-->
<resource>
<directory>${project.basedir}/src/main/java</directory>
<excludes>
<exclude>**/*</exclude>
</excludes>
</resource>
</resources>
</configuration>
<executions>
<execution>
<id>generate-asciidoc-manual-pdf</id>
<phase>prepare-package</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<backend>pdf</backend>
<outputDirectory>${project.build.directory}/manual-pdf</outputDirectory>
<sourceHighlighter>coderay</sourceHighlighter>
<!-- Use `book` docType to enable title page generation -->
<doctype>book</doctype>
<attributes>
<pdf-stylesdir>${project.basedir}/src/main/asciidoc/theme</pdf-stylesdir>
<pdf-style>custom</pdf-style>
<icons>font</icons>
<pagenums/>
<toc/>
<idprefix/>
<idseparator>-</idseparator>
</attributes>
</configuration>
</execution>
<execution>
<id>generate-asciidoc-manual-html</id>
<phase>prepare-package</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<backend>html5</backend>
<outputDirectory>${project.build.directory}/manual-html</outputDirectory>
<sourceHighlighter>coderay</sourceHighlighter>
<embedAssets>true</embedAssets>
<attributes>
<imagesdir>images</imagesdir>
<toc>left</toc>
<icons>font</icons>
<sectanchors>true</sectanchors>
<!-- set the idprefix to blank -->
<idprefix/>
<idseparator>-</idseparator>
<docinfo1>true</docinfo1>
</attributes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>