<?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>uk.ac.sanger</groupId> <artifactId>artemis</artifactId> <version>18.0.0-RC1</version> <name>Artemis</name> <description>Artemis is a free genome browser and annotation tool that allows visualisation of sequence features, next generation data and the results of analyses within the context of the sequence, and also its six-frame translation. Artemis is written in Java, and is available for UNIX, Macintosh and Windows systems. It can read EMBL and GENBANK database entries or sequence in FASTA, indexed FASTA or raw format. Other sequence features can be in EMBL, GENBANK or GFF format.</description> <inceptionYear>1998</inceptionYear> <!-- GitHub repo connection --> <scm> <connection>scm:https://github.com/sanger-pathogens/Artemis.git</connection> <url>https://github.com/sanger-pathogens/Artemis</url> <developerConnection>scm:https://github.com/sanger-pathogens/Artemis.git</developerConnection> <tag>HEAD</tag> </scm> <organization> <name>Sanger Institute</name> <url>http://www.sanger.ac.uk/</url> </organization> <url>http://sanger-pathogens.github.io/Artemis/</url> <developers> <developer> <id>kp11</id> <name>Kevin Pepper</name> <email>artemis-help@sanger.ac.uk</email> <url>http://www.sanger.ac.uk/science/tools/artemis</url> <organization>Sanger Institute</organization> <organizationUrl>http://www.sanger.ac.uk/</organizationUrl> <roles> <role>developer</role> </roles> <timezone>GB/London</timezone> </developer> </developers> <licenses> <license> <name>The GNU General Public License, Version 3, June 2007</name> <url>https://raw.githubusercontent.com/sanger-pathogens/Artemis/master/LICENSE</url> </license> </licenses> <issueManagement> <system>Github</system> <url>https://github.com/sanger-pathogens/Artemis/issues</url> </issueManagement> <mailingLists> <mailingList> <name>Artemis support email address</name> <post>artemis-help@sanger.ac.uk</post> </mailingList> </mailingLists> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <ignore.test.failures>true</ignore.test.failures> <version.file>${project.basedir}/etc/versions</version.file> <!-- Properties passed into Maven on command line --> <emboss.installation.root>${env.EMBOSS_ROOT}</emboss.installation.root> <!-- Application names --> <artemis.application.name>Artemis</artemis.application.name> <act.application.name>ACT</act.application.name> <dnaplotter.application.name>Circular-Plot</dnaplotter.application.name> <bamview.application.name>BamView</bamview.application.name> <!-- Deployable jar names --> <artemis.jar.name>artemis.jar</artemis.jar.name> <act.jar.name>act.jar</act.jar.name> <bamview.jar.name>bamview.jar</bamview.jar.name> <dnaplotter.jar.name>dnaplotter.jar</dnaplotter.jar.name> <!-- Main classes --> <artemis.main.class>uk.ac.sanger.artemis.components.ArtemisMain</artemis.main.class> <act.main.class>uk.ac.sanger.artemis.components.ActMain</act.main.class> <bamview.main.class>uk.ac.sanger.artemis.components.alignment.BamView</bamview.main.class> <dnaplotter.main.class>uk.ac.sanger.artemis.circular.DNADraw</dnaplotter.main.class> <!-- Java version--> <java.source.version>1.8</java.source.version> <java.target.version>1.8</java.target.version> <java.javadoc.url>https://docs.oracle.com/javase/8/docs/api/</java.javadoc.url> <osx.jdk.path>${env.JAVA_HOME}/../..</osx.jdk.path> <!-- Evosuite properties--> <targetFolder>src/test/evosuite</targetFolder> <evosuite.runtime.version>1.0.6</evosuite.runtime.version> <evosuite.plugin.version>1.0.6</evosuite.plugin.version> <!-- Assembly folders --> <windows.assembly.folder>artemis</windows.assembly.folder> <unix.assembly.folder>artemis</unix.assembly.folder> <osx.assembly.folder>artemis</osx.assembly.folder> <!-- Release deliverable folder --> <release.artifact.folder>${project.build.directory}/release-artifacts</release.artifact.folder> <windows.release.folder>${release.artifact.folder}/windows-release</windows.release.folder> <osx.app.folder>${release.artifact.folder}/mac-osx-release</osx.app.folder> <osx.app.chado.folder>${release.artifact.folder}/mac-osx-chado-release</osx.app.chado.folder> <unix.release.folder>${release.artifact.folder}/unix-release</unix.release.folder> <!-- Release file names --> <unix.release.filename>artemis-unix-release-${project.version}</unix.release.filename> <windows.release.filename>artemis-windows-release-${project.version}</windows.release.filename> <osx.release.filename>artemis-macosx-release-${project.version}</osx.release.filename> <osx.chado.release.filename>artemis-macosx-chado-release-${project.version}</osx.chado.release.filename> <!-- Mac OS application JVM options --> <postgres.command.line.arg>-Djdbc.drivers=org.postgresql.Driver</postgres.command.line.arg> <maxheap.command.line.arg>-mx2g</maxheap.command.line.arg> <initialheap.command.line.arg>-ms128m</initialheap.command.line.arg> <noverify.command.line.arg>-noverify</noverify.command.line.arg> <unixenv.command.line.arg>-Dartemis.environment=UNIX</unixenv.command.line.arg> <macosx.menuname.command.line.arg>-Dcom.apple.mrj.application.apple.menu.about.name</macosx.menuname.command.line.arg> <macosx.dock.command.line.arg>-Xdock:name</macosx.dock.command.line.arg> <chado.command.line.arg>-Dchado="localhost:5432/databasename?username"</chado.command.line.arg> <ibatis.command.line.arg>-Dibatis</ibatis.command.line.arg> <sangeroptions.command.line.arg>-Dsanger_options=yes</sangeroptions.command.line.arg> <j2ssh.command.line.arg>-Dj2ssh</j2ssh.command.line.arg> <!-- Surefire unit test plugin parameters --> <unit.test.timeout.ms>8000</unit.test.timeout.ms> <surefire.num.forks>2</surefire.num.forks> <surefireArgLine>-Xmx4g ${noverify.command.line.arg} ${postgres.command.line.arg} -Dtimeout=${unit.test.timeout.ms} -Duse_separate_classloader=false -DEMBOSS_ROOT=${emboss.installation.root}</surefireArgLine> <!-- Files to exclude from the build, e.g. Mac resource files. --> <default.file.excludes>**/log4j*.xml META-INF/* **/.DS_Store **/._*</default.file.excludes> <!-- Etc files to exclude from the build. --> <etc.file.excludes>*.seq *.fasta *.embl *.tab *.crunch *.genbank</etc.file.excludes> <artemis.icons.path>${project.basedir}/icons</artemis.icons.path> </properties> <dependencies> <!-- Start of BATIK Jars --> <!-- https://mvnrepository.com/artifact/org.apache.xmlgraphics/batik-codec --> <dependency> <groupId>org.apache.xmlgraphics</groupId> <artifactId>batik-codec</artifactId> <version>1.9.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.xmlgraphics/batik-dom --> <dependency> <groupId>org.apache.xmlgraphics</groupId> <artifactId>batik-dom</artifactId> <version>1.9.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.xmlgraphics/batik-ext --> <dependency> <groupId>org.apache.xmlgraphics</groupId> <artifactId>batik-ext</artifactId> <version>1.9.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.xmlgraphics/batik-svggen --> <dependency> <groupId>org.apache.xmlgraphics</groupId> <artifactId>batik-svggen</artifactId> <version>1.9.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.xmlgraphics/batik-util --> <dependency> <groupId>org.apache.xmlgraphics</groupId> <artifactId>batik-util</artifactId> <version>1.9.1</version> </dependency> <!-- End of BATIK Jars --> <!-- Start of IBATIS jars --> <!-- https://mvnrepository.com/artifact/com.ibatis/ibatis (local legacy jar) --> <dependency> <groupId>com.ibatis</groupId> <artifactId>ibatis</artifactId> <version>2.3.4.726</version> </dependency> <!-- This is now out of date but is used by the ibatis jar--> <!-- https://mvnrepository.com/artifact/cglib/cglib-nodep --> <dependency> <groupId>cglib</groupId> <artifactId>cglib-nodep</artifactId> <version>2.2</version> </dependency> <!-- This is now out of date - the package name has changed and so updating will mean many changes --> <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!-- End of IBATIS jars (local) --> <dependency> <groupId>com.sshtools</groupId> <artifactId>j2ssh-core</artifactId> <version>0.2.9</version> </dependency> <!-- Latest commons logging from 2014! --> <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <!-- End of J2SSH jars (local) --> <dependency> <groupId>org.emboss</groupId> <artifactId>jemboss</artifactId> <version>1.0</version> </dependency> <!-- Very out of date, but using the latest v3 will not compile atm --> <!-- https://mvnrepository.com/artifact/commons-lang/commons-lang --> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-net/commons-net --> <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.6</version> </dependency> <!-- NOTE: IBatis is no longer supported and very out of date --> <!-- Using the new postgres driver may cause issues - needs testing --> <!-- https://mvnrepository.com/artifact/org.postgresql/postgresql --> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.2.5</version> </dependency> <!-- Using latest version gives compilation errors! --> <dependency> <groupId>org.biojava</groupId> <artifactId>biojava</artifactId> <version>1.6</version> </dependency> <!-- Start of Picard jars --> <!-- https://mvnrepository.com/artifact/com.github.broadinstitute/picard --> <!-- Latest as of 24th Sept 2018 --> <!-- It contains two htsjdk fixes for CRAM index caching and the query mate issue --> <dependency> <groupId>com.github.broadinstitute</groupId> <artifactId>picard</artifactId> <version>2.18.14</version> </dependency> <!-- End of Picard jars --> <!-- Testing only --> <!-- https://mvnrepository.com/artifact/junit/junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.evosuite</groupId> <artifactId>evosuite-standalone-runtime</artifactId> <version>${evosuite.runtime.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-nop</artifactId> <version>1.7.25</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.mockito/mockito-core --> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>2.23.0</version> <scope>test</scope> </dependency> <!-- End of testing only --> <!-- Redundant dependencies..... --> <!-- Latest version as of 2005 --> <!-- https://mvnrepository.com/artifact/jakarta-regexp/jakarta-regexp --> <!-- dependency> <groupId>jakarta-regexp</groupId> <artifactId>jakarta-regexp</artifactId> <version>1.4</version> </dependency--> <!-- https://mvnrepository.com/artifact/batik/batik-awt-util --> <!-- dependency> <groupId>batik</groupId> <artifactId>batik-awt-util</artifactId> <version>1.6-1</version> </dependency--> <!-- https://mvnrepository.com/artifact/batik/batik-xml --> <!-- dependency> <groupId>batik</groupId> <artifactId>batik-xml</artifactId> <version>1.6-1</version> </dependency--> </dependencies> <build> <plugins> <!-- =================== Evosuite needs at least Maven 3.1 ======================= --> <plugin> <inherited>true</inherited> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>1.3.1</version> <executions> <execution> <id>enforce-maven-3</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireMavenVersion> <version>3.1</version> </requireMavenVersion> </rules> <fail>true</fail> </configuration> </execution> </executions> </plugin> <!-- ====================== Read signing related properties ======================= --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>properties-maven-plugin</artifactId> <version>1.0.0</version> <executions> <execution> <id>load-external-properties</id> <phase>initialize</phase> <goals> <goal>read-project-properties</goal> </goals> <configuration> <!-- Build will not fail if properties file is not found, but signing will fail --> <quiet>true</quiet> <files> <file>maven.properties</file> </files> </configuration> </execution> </executions> </plugin> <!-- ====================== Install essential old jars into the local Maven repo ======================= --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> <executions> <execution> <id>install-biojava-jar</id> <phase>validate</phase> <goals> <goal>install-file</goal> </goals> <configuration> <groupId>org.biojava</groupId> <artifactId>biojava</artifactId> <version>1.6</version> <packaging>jar</packaging> <file>${project.basedir}/lib/biojava.jar</file> <generatePom>true</generatePom> </configuration> </execution> <execution> <id>install-jemalign-jar</id> <phase>validate</phase> <goals> <goal>install-file</goal> </goals> <configuration> <groupId>org.emboss</groupId> <artifactId>jemboss</artifactId> <version>1.0</version> <packaging>jar</packaging> <file>${project.basedir}/lib/jemAlign.jar</file> <generatePom>true</generatePom> </configuration> </execution> <execution> <id>install-j2ssh-core-jar</id> <phase>validate</phase> <goals> <goal>install-file</goal> </goals> <configuration> <groupId>com.sshtools</groupId> <artifactId>j2ssh-core</artifactId> <version>0.2.9</version> <packaging>jar</packaging> <file>${project.basedir}/lib/j2ssh/j2ssh-core.jar</file> <generatePom>true</generatePom> </configuration> </execution> <execution> <id>install-ibatis-jar</id> <phase>validate</phase> <goals> <goal>install-file</goal> </goals> <configuration> <groupId>com.ibatis</groupId> <artifactId>ibatis</artifactId> <version>2.3.4.726</version> <packaging>jar</packaging> <file>${project.basedir}/lib/ibatis-2.3.4.726.jar</file> <generatePom>true</generatePom> </configuration> </execution> </executions> </plugin> <!-- ========= Store release version number to the Artemis splash screen version file ======== --> <plugin> <artifactId>maven-antrun-plugin</artifactId> <version>1.8</version> <executions> <execution> <id>updating-software-version-number</id> <phase>initialize</phase> <goals> <goal>run</goal> </goals> <configuration> <target> <echo file="${version.file}">Artemis Release ${project.version}${line.separator}ACT Release ${project.version}${line.separator}DNAPlotter Release ${project.version}${line.separator}BamView ${project.version}</echo> </target> </configuration> </execution> </executions> </plugin> <!-- ==================================== Compile ========================================= --> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>${java.source.version}</source> <target>${java.target.version}</target> </configuration> </plugin> <!-- ============================== Jar customisation ===================================== --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.1.0</version> <configuration> <archive> <manifest> <addClasspath>false</addClasspath> </manifest> <manifestEntries> <Permissions>all-permissions</Permissions> <Codebase>*</Codebase> </manifestEntries> </archive> </configuration> </plugin> <!-- ============================== Copy resources to build folder ======================== --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> <executions> <!-- Copy test data for unit tests --> <execution> <id>copy-test-data</id> <phase>process-test-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.testOutputDirectory}/data</outputDirectory> <resources> <resource> <directory>${project.basedir}/test/data</directory> </resource> </resources> </configuration> </execution> <!-- Copy etc on to classpath --> <execution> <id>copy-property-files</id> <phase>process-test-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.outputDirectory}/etc</outputDirectory> <resources> <resource> <directory>${project.basedir}/etc</directory> </resource> </resources> </configuration> </execution> <!-- Copy images on to classpath --> <execution> <id>copy-image-folder</id> <phase>process-test-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.outputDirectory}/images</outputDirectory> <resources> <resource> <directory>${project.basedir}/images</directory> </resource> </resources> </configuration> </execution> <!-- Copy non-maven legacy jars to build area for inclusion in assembly --> <!-- execution> <id>copy-old-jars</id> <phase>process-test-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> <resources> <resource> <directory>${project.basedir}/lib/**/*.jar</directory> </resource> </resources> </configuration> </execution--> <execution> <id>copy-icons-to-target-folder</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <skip>${jarsigner.skip}</skip> <outputDirectory>${project.build.directory}/icons</outputDirectory> <resources> <resource> <directory>${artemis.icons.path}</directory> </resource> </resources> </configuration> </execution> </executions> </plugin> <!-- ============================== Run JUnit tests =============================== --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.20.1</version> <configuration> <skipTests>${skip.tests}</skipTests> <trimStackTrace>false</trimStackTrace> <forkCount>${surefire.num.forks}</forkCount> <reuseForks>false</reuseForks> <testFailureIgnore>${ignore.test.failures}</testFailureIgnore> <argLine>@{surefireArgLine}</argLine> <excludes> <!-- Start of Evosuite excludes --> <exclude>${evosuite.exclude.filter}</exclude> <exclude>org/gmod/**</exclude> <exclude>**/RunBlastAtNCBITest.*</exclude> <exclude>**/j2ssh/**</exclude> <!-- End of Evosuite excludes --> </excludes> <!-- Required when running Evosuite tests along with normal tests --> <properties> <property> <name>listener</name> <value>org.evosuite.runtime.InitializingListener</value> </property> </properties> </configuration> </plugin> <!-- ========================= Required for Evosuite test running ========================--> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <id>add-test-source</id> <phase>generate-test-sources</phase> <goals> <goal>add-test-source</goal> </goals> <configuration> <sources> <source>${targetFolder}</source> </sources> </configuration> </execution> </executions> </plugin> <!-- =================================== Run Jacoco coverage report ======================================--> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.0</version> <configuration> <skip>${skip.coverage.reporting}</skip> </configuration> <executions> <execution> <id>pre-unit-test</id> <goals> <goal>prepare-agent</goal> </goals> <configuration> <output>file</output> <!-- Sets the path to the file which contains the execution data. --> <destFile>${project.build.directory}/jacoco-ut.exec</destFile> <!-- Sets the name of the property containing the settings for JaCoCo runtime agent. --> <propertyName>surefireArgLine</propertyName> </configuration> </execution> <!-- Ensures that the code coverage report for unit tests is created after unit tests have been run. --> <execution> <id>post-unit-test</id> <phase>test</phase> <goals> <goal>report</goal> </goals> <configuration> <dataFile>${project.build.directory}/jacoco-ut.exec</dataFile> <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> <excludes> <exclude>org/**</exclude> </excludes> </configuration> </execution> </executions> </plugin> <!-- ============= Package the code and dependent jars into one executable jar for each applications ========= --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.1.0</version> <executions> <execution> <id>package-nonunix-artemis-jar</id> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <outputFile>target/jars/${artemis.jar.name}</outputFile> <createDependencyReducedPom>false</createDependencyReducedPom> <minimizeJar>false</minimizeJar> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <manifestEntries> <Main-Class>${artemis.main.class}</Main-Class> <Permissions>all-permissions</Permissions> </manifestEntries> </transformer> </transformers> <filters> <filter> <artifact>org.mozilla:rhino:*</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <filter> <artifact>org.python:jython:*</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <filter> <artifact>*:*</artifact> <excludes> <exclude>${default.file.excludes}</exclude> <exclude>${etc.file.excludes}</exclude> </excludes> </filter> </filters> </configuration> </execution> <execution> <id>package-unix-artemis-jar</id> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <outputFile>target/unix-jars/${artemis.jar.name}</outputFile> <createDependencyReducedPom>false</createDependencyReducedPom> <minimizeJar>false</minimizeJar> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <manifestEntries> <Main-Class>${artemis.main.class}</Main-Class> <Permissions>all-permissions</Permissions> </manifestEntries> </transformer> </transformers> <filters> <filter> <artifact>org.mozilla:rhino:*</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <filter> <artifact>org.python:jython:*</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <filter> <artifact>*:*</artifact> <excludes> <exclude>${default.file.excludes}</exclude> <exclude>etc/**</exclude> </excludes> </filter> </filters> </configuration> </execution> <execution> <id>package-nonunix-act-jar</id> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <outputFile>target/jars/${act.jar.name}</outputFile> <createDependencyReducedPom>false</createDependencyReducedPom> <minimizeJar>false</minimizeJar> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <manifestEntries> <Main-Class>${act.main.class}</Main-Class> <Permissions>all-permissions</Permissions> </manifestEntries> </transformer> </transformers> <filters> <filter> <artifact>org.mozilla:rhino:*</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <filter> <artifact>org.python:jython:*</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <filter> <artifact>*:*</artifact> <excludes> <exclude>${default.file.excludes}</exclude> <exclude>${etc.file.excludes}</exclude> </excludes> </filter> </filters> </configuration> </execution> <execution> <id>package-unix-act-jar</id> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <outputFile>target/unix-jars/${act.jar.name}</outputFile> <createDependencyReducedPom>false</createDependencyReducedPom> <minimizeJar>false</minimizeJar> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <manifestEntries> <Main-Class>${act.main.class}</Main-Class> <Permissions>all-permissions</Permissions> </manifestEntries> </transformer> </transformers> <filters> <filter> <artifact>org.mozilla:rhino:*</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <filter> <artifact>org.python:jython:*</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <filter> <artifact>*:*</artifact> <excludes> <exclude>${default.file.excludes}</exclude> <exclude>etc/**</exclude> </excludes> </filter> </filters> </configuration> </execution> <execution> <id>package-nonunix-dnaplotter-jar</id> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <outputFile>target/jars/${dnaplotter.jar.name}</outputFile> <createDependencyReducedPom>false</createDependencyReducedPom> <minimizeJar>false</minimizeJar> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <manifestEntries> <Main-Class>${dnaplotter.main.class}</Main-Class> <Permissions>all-permissions</Permissions> </manifestEntries> </transformer> </transformers> <filters> <filter> <artifact>org.mozilla:rhino:*</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <filter> <artifact>org.python:jython:*</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <filter> <artifact>*:*</artifact> <excludes> <exclude>${default.file.excludes}</exclude> <exclude>artemis_sqlmap/**</exclude> <exclude>${etc.file.excludes}</exclude> </excludes> </filter> </filters> </configuration> </execution> <execution> <id>package-unix-dnaplotter-jar</id> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <outputFile>target/unix-jars/${dnaplotter.jar.name}</outputFile> <createDependencyReducedPom>false</createDependencyReducedPom> <minimizeJar>false</minimizeJar> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <manifestEntries> <Main-Class>${dnaplotter.main.class}</Main-Class> <Permissions>all-permissions</Permissions> </manifestEntries> </transformer> </transformers> <filters> <filter> <artifact>org.mozilla:rhino:*</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <filter> <artifact>org.python:jython:*</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <filter> <artifact>*:*</artifact> <excludes> <exclude>${default.file.excludes}</exclude> <exclude>artemis_sqlmap/**</exclude> <exclude>etc/**</exclude> </excludes> </filter> </filters> </configuration> </execution> <execution> <id>package-nonunix-bamview-jar</id> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <outputFile>target/jars/${bamview.jar.name}</outputFile> <createDependencyReducedPom>false</createDependencyReducedPom> <minimizeJar>false</minimizeJar> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <manifestEntries> <Main-Class>${bamview.main.class}</Main-Class> <Permissions>all-permissions</Permissions> </manifestEntries> </transformer> </transformers> <filters> <filter> <artifact>org.mozilla:rhino:*</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <filter> <artifact>org.python:jython:*</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <filter> <artifact>*:*</artifact> <excludes> <exclude>${default.file.excludes}</exclude> <exclude>artemis_sqlmap/**</exclude> <exclude>${etc.file.excludes}</exclude> </excludes> </filter> </filters> </configuration> </execution> <execution> <id>package-unix-bamview-jar</id> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <outputFile>target/unix-jars/${bamview.jar.name}</outputFile> <createDependencyReducedPom>false</createDependencyReducedPom> <minimizeJar>false</minimizeJar> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <manifestEntries> <Main-Class>${bamview.main.class}</Main-Class> <Permissions>all-permissions</Permissions> </manifestEntries> </transformer> </transformers> <filters> <filter> <artifact>org.mozilla:rhino:*</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <filter> <artifact>org.python:jython:*</artifact> <excludes> <exclude>**</exclude> </excludes> </filter> <filter> <artifact>*:*</artifact> <excludes> <exclude>${default.file.excludes}</exclude> <exclude>artemis_sqlmap/**</exclude> <exclude>etc/**</exclude> </excludes> </filter> </filters> </configuration> </execution> </executions> <configuration> <skipAssembly>${skip.artifact.creation}</skipAssembly> </configuration> </plugin> <!-- ============================= Sign executable jar files ============================ --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jarsigner-plugin</artifactId> <version>1.4</version> <executions> <execution> <id>sign-non-unix-jars</id> <phase>package</phase> <goals> <goal>sign</goal> </goals> <configuration> <skip>${jarsigner.skip}</skip> <verbose>false</verbose> <processMainArtifact>false</processMainArtifact> <processAttachedArtifacts>false</processAttachedArtifacts> <archiveDirectory>target/jars</archiveDirectory> <keystore>${signer-keystore-path}</keystore> <storetype>${signer-keystore-type}</storetype> <alias>${signer-keystore-alias}</alias> <storepass>${signer-keystore-password}</storepass> <keypass>${signer-keystore-password}</keypass> <removeExistingSignatures>true</removeExistingSignatures> <tsa>http://timestamp.comodoca.com/rfc3161</tsa> </configuration> </execution> <execution> <id>sign-unix-jars</id> <phase>package</phase> <goals> <goal>sign</goal> </goals> <configuration> <skip>${jarsigner.skip}</skip> <verbose>false</verbose> <processMainArtifact>false</processMainArtifact> <processAttachedArtifacts>false</processAttachedArtifacts> <archiveDirectory>target/unix-jars</archiveDirectory> <keystore>${signer-keystore-path}</keystore> <storetype>${signer-keystore-type}</storetype> <alias>${signer-keystore-alias}</alias> <storepass>${signer-keystore-password}</storepass> <keypass>${signer-keystore-password}</keypass> <removeExistingSignatures>true</removeExistingSignatures> <tsa>http://timestamp.comodoca.com/rfc3161</tsa> </configuration> </execution> </executions> </plugin> <!-- ========================== Create release zips ============================ --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.1.0</version> <executions> <execution> <id>create-unix-release</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <appendAssemblyId>false</appendAssemblyId> <outputDirectory>${unix.release.folder}</outputDirectory> <descriptors> <descriptor>src/assembly/unix-release-assembly.xml</descriptor> </descriptors> <finalName>${unix.release.filename}</finalName> </configuration> </execution> <execution> <id>create-windows-release</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <appendAssemblyId>false</appendAssemblyId> <outputDirectory>${windows.release.folder}</outputDirectory> <descriptors> <descriptor>src/assembly/windows-release-assembly.xml</descriptor> </descriptors> <finalName>${windows.release.filename}</finalName> </configuration> </execution> </executions> <configuration> <skipAssembly>${skip.artifact.creation}</skipAssembly> </configuration> </plugin> </plugins> <pluginManagement> <plugins> <!-- We need this next bit to get rid of a warning on the enforcer plugin in Eclipse --> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <versionRange>[1.3.1,)</versionRange> <goals> <goal>enforce</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> <!-- ============= Special task used on an ad-hoc basis to create EvoSuite tests ============ --> <plugin> <groupId>org.evosuite.plugins</groupId> <artifactId>evosuite-maven-plugin</artifactId> <version>${evosuite.plugin.version}</version> <executions> <execution> <id>create-evosuite-tests</id> <goals> <goal>prepare</goal> </goals> <phase>process-test-classes</phase> </execution> </executions> <configuration> <extraArgs>-Dsearch_budget=90 -Dconsider_main_methods=false -Duse_separate_classloader=false</extraArgs> </configuration> </plugin> <!-- Deploy artifacts to a GitHub release - run manually using: mvn github-release:release --> <!-- plugin> <groupId>de.jutzig</groupId> <artifactId>github-release-plugin</artifactId> <version>1.2.0</version> <inherited>false</inherited> <configuration> <description>See ChangeLog for details</description> <releaseName>Release v${project.version}</releaseName> <tag>v${project.version}</tag> <draft>true</draft> <artifact>${unix.release.folder}/${unix.release.filename}</artifact> <fileSets> <fileSet> <includes> <include>${osx.app.folder}/${osx.release.filename}.dmg</include> <include>${windows.release.folder}/${windows.release.filename}</include> <include>${project.basedir}/ChangeLog</include> </includes> </fileSet> </fileSets> </configuration> </plugin --> </plugins> </pluginManagement> </build> <reporting> <plugins> <!-- Javadoc --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.0.0</version> <configuration> <skip>${skip.javadoc}</skip> <failOnError>false</failOnError> <quiet>true</quiet> <excludePackageNames>org.*</excludePackageNames> <excludes>**/*Test.java, **/*_scaffolding*.java</excludes> </configuration> <reportSets> <reportSet> <reports> <report>javadoc-no-fork</report> <report>test-javadoc-no-fork</report> </reports> </reportSet> </reportSets> </plugin> </plugins> </reporting> <!-- ========================== Profile section =================================--> <profiles> <!-- The configuration of the default development profile --> <profile> <id>dev</id> <!-- The development profile is active by default and does not run any tests --> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <skip.tests>false</skip.tests> <evosuite.exclude.filter>**/*_ESTest*</evosuite.exclude.filter> <jarsigner.skip>true</jarsigner.skip> <skip.artifact.creation>true</skip.artifact.creation> <skip.coverage.reporting>true</skip.coverage.reporting> <skip.javadoc>true</skip.javadoc> <build.profile.id>dev</build.profile.id> </properties> </profile> <profile> <id>release</id> <activation> <activeByDefault>false</activeByDefault> </activation> <properties> <skip.tests>false</skip.tests> <evosuite.exclude.filter>**/*_ESTest*</evosuite.exclude.filter> <jarsigner.skip>false</jarsigner.skip> <skip.artifact.creation>false</skip.artifact.creation> <skip.coverage.reporting>false</skip.coverage.reporting> <skip.javadoc>false</skip.javadoc> <build.profile.id>release</build.profile.id> </properties> <build> <plugins> <!-- Package jar files into OSX .apps and create dmg images. NOTE1: artemis_sqlmap is already included in the original jar NOTE2: The skip flag does not work on this plugin so it needs to be added into the profile [hack] --> <plugin> <groupId>sh.tak.appbundler</groupId> <artifactId>appbundle-maven-plugin</artifactId> <version>1.1.0</version> <executions> <execution> <id>create-artemis-osx-app</id> <phase>package</phase> <goals> <goal>bundle</goal> </goals> <configuration> <skip>${skip.artifact.creation}</skip> <version>${project.version}</version> <buildDirectory>${osx.app.folder}</buildDirectory> <generateDiskImageFile>false</generateDiskImageFile> <bundleName>${artemis.application.name}</bundleName> <jrePath>${osx.jdk.path}</jrePath> <mainClass>${artemis.main.class}</mainClass> <iconFile>${project.build.directory}/icons/artemis.icns</iconFile> <jvmVersion>${java.target.version}</jvmVersion> <jvmOptions> <jvmOption>${maxheap.command.line.arg}</jvmOption> <jvmOption>${initialheap.command.line.arg}</jvmOption> <jvmOption>${noverify.command.line.arg}</jvmOption> <jvmOption>${unixenv.command.line.arg}</jvmOption> <jvmOption>${macosx.menuname.command.line.arg}=${artemis.application.name}</jvmOption> <jvmOption>${macosx.dock.command.line.arg}=${artemis.application.name}</jvmOption> <jvmOption>${sangeroptions.command.line.arg}</jvmOption> <jvmOption>${j2ssh.command.line.arg}</jvmOption> </jvmOptions> <additionalBundledClasspathResources> <fileSet> <directory>${project.build.directory}/icons</directory> <includes> <include>Readme.txt</include> </includes> </fileSet> </additionalBundledClasspathResources> </configuration> </execution> <execution> <id>create-act-osx-app</id> <phase>package</phase> <goals> <goal>bundle</goal> </goals> <configuration> <skip>false</skip> <version>${project.version}</version> <buildDirectory>${osx.app.folder}</buildDirectory> <generateDiskImageFile>false</generateDiskImageFile> <bundleName>${act.application.name}</bundleName> <jrePath>${osx.jdk.path}</jrePath> <mainClass>${act.main.class}</mainClass> <iconFile>${project.build.directory}/icons/act.icns</iconFile> <jvmVersion>${java.target.version}</jvmVersion> <jvmOptions> <jvmOption>${maxheap.command.line.arg}</jvmOption> <jvmOption>${initialheap.command.line.arg}</jvmOption> <jvmOption>${noverify.command.line.arg}</jvmOption> <jvmOption>${unixenv.command.line.arg}</jvmOption> <jvmOption>${macosx.menuname.command.line.arg}=${act.application.name}</jvmOption> <jvmOption>${macosx.dock.command.line.arg}=${act.application.name}</jvmOption> <jvmOption>${sangeroptions.command.line.arg}</jvmOption> <jvmOption>${j2ssh.command.line.arg}</jvmOption> </jvmOptions> <additionalBundledClasspathResources> <fileSet> <directory>${project.build.directory}/icons</directory> <includes> <include>Readme.txt</include> </includes> </fileSet> </additionalBundledClasspathResources> </configuration> </execution> <execution> <id>create-dnaplotter-osx-app</id> <phase>package</phase> <goals> <goal>bundle</goal> </goals> <configuration> <skip>false</skip> <version>${project.version}</version> <buildDirectory>${osx.app.folder}</buildDirectory> <generateDiskImageFile>false</generateDiskImageFile> <bundleName>${dnaplotter.application.name}</bundleName> <jrePath>${osx.jdk.path}</jrePath> <mainClass>${dnaplotter.main.class}</mainClass> <iconFile>${project.build.directory}/icons/dnaplotter.icns</iconFile> <jvmVersion>${java.target.version}</jvmVersion> <jvmOptions> <jvmOption>${maxheap.command.line.arg}</jvmOption> <jvmOption>${initialheap.command.line.arg}</jvmOption> <jvmOption>${noverify.command.line.arg}</jvmOption> <jvmOption>${unixenv.command.line.arg}</jvmOption> <jvmOption>${macosx.menuname.command.line.arg}=${dnaplotter.application.name}</jvmOption> <jvmOption>${macosx.dock.command.line.arg}=${dnaplotter.application.name}</jvmOption> <jvmOption>${sangeroptions.command.line.arg}</jvmOption> <jvmOption>${j2ssh.command.line.arg}</jvmOption> </jvmOptions> <additionalBundledClasspathResources> <fileSet> <directory>${project.build.directory}/icons</directory> <includes> <include>Readme.txt</include> </includes> </fileSet> </additionalBundledClasspathResources> </configuration> </execution> <!-- The last execution also creates the disk image file... --> <execution> <id>create-bamview-osx-app</id> <phase>package</phase> <goals> <goal>bundle</goal> </goals> <configuration> <skip>false</skip> <version>${project.version}</version> <buildDirectory>${osx.app.folder}</buildDirectory> <generateDiskImageFile>true</generateDiskImageFile> <diskImageFile>${osx.app.folder}/${osx.release.filename}.dmg</diskImageFile> <bundleName>${bamview.application.name}</bundleName> <jrePath>${osx.jdk.path}</jrePath> <mainClass>${bamview.main.class}</mainClass> <iconFile>${project.build.directory}/icons/bamview.icns</iconFile> <jvmVersion>${java.target.version}</jvmVersion> <jvmOptions> <jvmOption>${maxheap.command.line.arg}</jvmOption> <jvmOption>${initialheap.command.line.arg}</jvmOption> <jvmOption>${noverify.command.line.arg}</jvmOption> <jvmOption>${unixenv.command.line.arg}</jvmOption> <jvmOption>${macosx.menuname.command.line.arg}=${bamview.application.name}</jvmOption> <jvmOption>${macosx.dock.command.line.arg}=${bamview.application.name}</jvmOption> <jvmOption>${sangeroptions.command.line.arg}</jvmOption> <jvmOption>${j2ssh.command.line.arg}</jvmOption> </jvmOptions> <additionalBundledClasspathResources> <fileSet> <directory>${project.build.directory}/icons</directory> <includes> <include>Readme.txt</include> </includes> </fileSet> </additionalBundledClasspathResources> </configuration> </execution> <!-- Package CHADO version of toolkit --> <execution> <id>create-artemis-osx-app-CHADO</id> <phase>package</phase> <goals> <goal>bundle</goal> </goals> <configuration> <skip>${skip.artifact.creation}</skip> <version>${project.version}</version> <buildDirectory>${osx.app.chado.folder}</buildDirectory> <generateDiskImageFile>false</generateDiskImageFile> <bundleName>${artemis.application.name} (CHADO)</bundleName> <jrePath>${osx.jdk.path}</jrePath> <mainClass>${artemis.main.class}</mainClass> <iconFile>${project.build.directory}/icons/artemis.icns</iconFile> <jvmVersion>${java.target.version}</jvmVersion> <jvmOptions> <jvmOption>${postgres.command.line.arg}</jvmOption> <jvmOption>${chado.command.line.arg}</jvmOption> <jvmOption>${ibatis.command.line.arg}</jvmOption> <jvmOption>${maxheap.command.line.arg}</jvmOption> <jvmOption>${initialheap.command.line.arg}</jvmOption> <jvmOption>${noverify.command.line.arg}</jvmOption> <jvmOption>${unixenv.command.line.arg}</jvmOption> <jvmOption>${macosx.menuname.command.line.arg}=${artemis.application.name}</jvmOption> <jvmOption>${macosx.dock.command.line.arg}=${artemis.application.name}</jvmOption> <jvmOption>${sangeroptions.command.line.arg}</jvmOption> <jvmOption>${j2ssh.command.line.arg}</jvmOption> </jvmOptions> <additionalBundledClasspathResources> <fileSet> <directory>${project.build.directory}/icons</directory> <includes> <include>Readme.txt</include> </includes> </fileSet> </additionalBundledClasspathResources> </configuration> </execution> <execution> <id>create-act-osx-app-CHADO</id> <phase>package</phase> <goals> <goal>bundle</goal> </goals> <configuration> <skip>false</skip> <version>${project.version}</version> <buildDirectory>${osx.app.chado.folder}</buildDirectory> <generateDiskImageFile>false</generateDiskImageFile> <bundleName>${act.application.name} (CHADO)</bundleName> <jrePath>${osx.jdk.path}</jrePath> <mainClass>${act.main.class}</mainClass> <iconFile>${project.build.directory}/icons/act.icns</iconFile> <jvmVersion>${java.target.version}</jvmVersion> <jvmOptions> <jvmOption>${postgres.command.line.arg}</jvmOption> <jvmOption>${chado.command.line.arg}</jvmOption> <jvmOption>${ibatis.command.line.arg}</jvmOption> <jvmOption>${maxheap.command.line.arg}</jvmOption> <jvmOption>${initialheap.command.line.arg}</jvmOption> <jvmOption>${noverify.command.line.arg}</jvmOption> <jvmOption>${unixenv.command.line.arg}</jvmOption> <jvmOption>${macosx.menuname.command.line.arg}=${act.application.name}</jvmOption> <jvmOption>${macosx.dock.command.line.arg}=${act.application.name}</jvmOption> <jvmOption>${sangeroptions.command.line.arg}</jvmOption> <jvmOption>${j2ssh.command.line.arg}</jvmOption> </jvmOptions> <additionalBundledClasspathResources> <fileSet> <directory>${project.build.directory}/icons</directory> <includes> <include>Readme.txt</include> </includes> </fileSet> </additionalBundledClasspathResources> </configuration> </execution> <execution> <id>create-dnaplotter-osx-app-CHADO</id> <phase>package</phase> <goals> <goal>bundle</goal> </goals> <configuration> <skip>false</skip> <version>${project.version}</version> <buildDirectory>${osx.app.chado.folder}</buildDirectory> <generateDiskImageFile>false</generateDiskImageFile> <bundleName>${dnaplotter.application.name}</bundleName> <jrePath>${osx.jdk.path}</jrePath> <mainClass>${dnaplotter.main.class}</mainClass> <iconFile>${project.build.directory}/icons/dnaplotter.icns</iconFile> <jvmVersion>${java.target.version}</jvmVersion> <jvmOptions> <jvmOption>${maxheap.command.line.arg}</jvmOption> <jvmOption>${initialheap.command.line.arg}</jvmOption> <jvmOption>${noverify.command.line.arg}</jvmOption> <jvmOption>${unixenv.command.line.arg}</jvmOption> <jvmOption>${macosx.menuname.command.line.arg}=${dnaplotter.application.name}</jvmOption> <jvmOption>${macosx.dock.command.line.arg}=${dnaplotter.application.name}</jvmOption> <jvmOption>${sangeroptions.command.line.arg}</jvmOption> <jvmOption>${j2ssh.command.line.arg}</jvmOption> </jvmOptions> <additionalBundledClasspathResources> <fileSet> <directory>${project.build.directory}/icons</directory> <includes> <include>Readme.txt</include> </includes> </fileSet> </additionalBundledClasspathResources> </configuration> </execution> <!-- The last execution also creates the disk image file... --> <execution> <id>create-bamview-osx-app-CHADO</id> <phase>package</phase> <goals> <goal>bundle</goal> </goals> <configuration> <skip>false</skip> <version>${project.version}</version> <buildDirectory>${osx.app.chado.folder}</buildDirectory> <generateDiskImageFile>true</generateDiskImageFile> <diskImageFile>${osx.app.chado.folder}/${osx.chado.release.filename}.dmg</diskImageFile> <bundleName>${bamview.application.name}</bundleName> <jrePath>${osx.jdk.path}</jrePath> <mainClass>${bamview.main.class}</mainClass> <iconFile>${project.build.directory}/icons/bamview.icns</iconFile> <jvmVersion>${java.target.version}</jvmVersion> <jvmOptions> <jvmOption>${maxheap.command.line.arg}</jvmOption> <jvmOption>${initialheap.command.line.arg}</jvmOption> <jvmOption>${noverify.command.line.arg}</jvmOption> <jvmOption>${unixenv.command.line.arg}</jvmOption> <jvmOption>${macosx.menuname.command.line.arg}=${bamview.application.name}</jvmOption> <jvmOption>${macosx.dock.command.line.arg}=${bamview.application.name}</jvmOption> <jvmOption>${sangeroptions.command.line.arg}</jvmOption> <jvmOption>${j2ssh.command.line.arg}</jvmOption> </jvmOptions> <additionalBundledClasspathResources> <fileSet> <directory>${project.build.directory}/icons</directory> <includes> <include>Readme.txt</include> </includes> </fileSet> </additionalBundledClasspathResources> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> </project>