gephi
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.gephi</groupId>
<artifactId>gephi</artifactId>
<version>0.10.1</version>
</dependency><?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>
<!-- Parent POM -->
<parent>
<groupId>org.gephi</groupId>
<artifactId>gephi-parent</artifactId>
<version>0.10.1</version>
<relativePath>../..</relativePath>
</parent>
<artifactId>gephi</artifactId>
<packaging>nbm-application</packaging>
<version>0.10.1</version>
<name>gephi-app</name>
<properties>
<jarGoalPhase>package</jarGoalPhase>
<skipCreateTargz>true</skipCreateTargz>
<skipCreateExe>true</skipCreateExe>
<skipCreateDmg>true</skipCreateDmg>
<skipAppleNotarization>true</skipAppleNotarization>
</properties>
<!-- For site only -->
<distributionManagement>
<site>
<id>github</id>
<url>scm:git:https://github.com/gephi/gephi.git</url>
</site>
</distributionManagement>
<!-- Dependencies -->
<dependencies>
<dependency>
<groupId>org.netbeans.cluster</groupId>
<artifactId>platform</artifactId>
<type>pom</type>
<exclusions>
<exclusion>
<artifactId>org-jdesktop-layout</artifactId>
<groupId>org.netbeans.api</groupId>
</exclusion>
<exclusion>
<artifactId>org-netbeans-api-search</artifactId>
<groupId>org.netbeans.api</groupId>
</exclusion>
<exclusion>
<artifactId>org-netbeans-api-visual</artifactId>
<groupId>org.netbeans.api</groupId>
</exclusion>
<exclusion>
<artifactId>org-netbeans-core-execution</artifactId>
<groupId>org.netbeans.modules</groupId>
</exclusion>
<exclusion>
<artifactId>org-netbeans-core-netigso</artifactId>
<groupId>org.netbeans.api</groupId>
</exclusion>
<exclusion>
<artifactId>org-netbeans-core-osgi</artifactId>
<groupId>org.netbeans.modules</groupId>
</exclusion>
<exclusion>
<artifactId>org-netbeans-libs-jsr223</artifactId>
<groupId>org.netbeans.api</groupId>
</exclusion>
<exclusion>
<artifactId>org-netbeans-libs-testng</artifactId>
<groupId>org.netbeans.api</groupId>
</exclusion>
<exclusion>
<artifactId>org-netbeans-libs-junit4</artifactId>
<groupId>org.netbeans.api</groupId>
</exclusion>
<exclusion>
<artifactId>org-netbeans-modules-netbinox</artifactId>
<groupId>org.netbeans.api</groupId>
</exclusion>
<exclusion>
<artifactId>org-openide-compat</artifactId>
<groupId>org.netbeans.api</groupId>
</exclusion>
<exclusion>
<artifactId>org-openide-options</artifactId>
<groupId>org.netbeans.api</groupId>
</exclusion>
<exclusion>
<artifactId>org-openide-util-enumerations</artifactId>
<groupId>org.netbeans.api</groupId>
</exclusion>
<exclusion>
<artifactId>org-netbeans-modules-editor-mimelookup-impl</artifactId>
<groupId>org.netbeans.modules</groupId>
</exclusion>
<exclusion>
<artifactId>org-netbeans-modules-javahelp</artifactId>
<groupId>org.netbeans.api</groupId>
</exclusion>
<exclusion>
<artifactId>org-netbeans-modules-spi-actions</artifactId>
<groupId>org.netbeans.modules</groupId>
</exclusion>
<exclusion>
<artifactId>org-netbeans-modules-junitlib</artifactId>
<groupId>org.netbeans.modules</groupId>
</exclusion>
<exclusion>
<artifactId>org-netbeans-api-htmlui</artifactId>
<groupId>org.netbeans.api</groupId>
</exclusion>
<exclusion>
<artifactId>org-netbeans-modules-templatesui</artifactId>
<groupId>org.netbeans.modules</groupId>
</exclusion>
<exclusion>
<groupId>org.netbeans.html</groupId>
<artifactId>net.java.html</artifactId>
</exclusion>
<exclusion>
<groupId>org.netbeans.html</groupId>
<artifactId>net.java.html.boot</artifactId>
</exclusion>
<exclusion>
<groupId>org.netbeans.html</groupId>
<artifactId>net.java.html.boot.fx</artifactId>
</exclusion>
<exclusion>
<groupId>org.netbeans.html</groupId>
<artifactId>net.java.html.boot.script</artifactId>
</exclusion>
<exclusion>
<groupId>org.netbeans.html</groupId>
<artifactId>net.java.html.geo</artifactId>
</exclusion>
<exclusion>
<groupId>org.netbeans.html</groupId>
<artifactId>net.java.html.json</artifactId>
</exclusion>
<exclusion>
<groupId>org.netbeans.html</groupId>
<artifactId>net.java.html.sound</artifactId>
</exclusion>
<exclusion>
<groupId>org.netbeans.html</groupId>
<artifactId>ko4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.netbeans.html</groupId>
<artifactId>xhr4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-libs-junit5</artifactId>
</exclusion>
<exclusion>
<groupId>org.netbeans.modules</groupId>
<artifactId>org-netbeans-modules-htmlui</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-modules-nbjunit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>utils-longtask</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>project-api</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>graph-api</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>io-exporter-api</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>preview-api</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>io-exporter-preview</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>preview-export-ui</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>utils</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>datalab-api</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>visualization-api</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>preview-plugin</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>db-drivers</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>io-importer-api</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>ui-utils</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>ui-components</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>settings-upgrader</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>statistics-api</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>statistics-plugin</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>statistics-plugin-ui</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>timeline-api</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>tools-api</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>algorithms-plugin</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>mostrecentfiles-api</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-project</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>visualization</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>tools-plugin</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>welcome-screen</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-context</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-branding</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>layout-api</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>io-generator-api</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>io-generator-plugin</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>generator-plugin-ui</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>io-exporter-plugin</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-statistics</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>filters-api</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>layout-plugin</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-generate</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-datalab</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>appearance-api</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-appearance</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>io-importer-plugin</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>filters-plugin</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>filters-impl</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>export-plugin-ui</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-io-export</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>perspective-api</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>import-plugin-ui</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-window</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>datalab-plugin</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>filters-plugin-ui</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-layout</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-import</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-preview</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>appearance-plugin</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>appearance-plugin-ui</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-tools</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-timeline</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-filters</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>core-library-wrapper</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>ui-library-wrapper</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-icons</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>desktop-search</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Build jar only when not in deployment mode so install does not fail due to no attached artifacts -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration combine.self="override">
<!-- Override for not using the archive - manifestFile from parent pom -->
</configuration>
<executions>
<execution>
<phase>${jarGoalPhase}</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Disable the ZIP goal. Also set up the location of the gephi.conf -->
<plugin>
<groupId>org.apache.netbeans.utilities</groupId>
<artifactId>nbm-maven-plugin</artifactId>
<configuration>
<!-- Set up the gephi.conf for the final artifact -->
<etcConfFile>${basedir}/target/${brandingToken}.conf</etcConfFile>
<!-- Source of the NBMs for auto update -->
<distBase>central::default::${gephi.update.center.source}</distBase>
</configuration>
<executions>
<execution>
<id>default-standalone-zip</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
<!-- Do not generate a source jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<configuration>
<skipSource>true</skipSource>
</configuration>
</plugin>
<!-- Copy ressources gephi.conf and Info.plist with filtering (replacing 'project.version' by the actual version -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>generate-app-conf-file</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>${brandingToken}.conf</include>
<include>Info.plist</include>
<include>Entitlements.plist</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<escapeString>\</escapeString>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<!-- The deployment profile is built for daily releases. It builds the standalone
zip and the autoupdate site. It can be used with deploy-dmg to include the dmg as well. -->
<profile>
<id>deployment</id>
<properties>
<jarGoalPhase>none</jarGoalPhase>
</properties>
<!-- Localization dependency -->
<dependencies>
<dependency>
<groupId>nl.cloudfarming.client</groupId>
<artifactId>lib-platform-l10n</artifactId>
<version>${gephi.platform.localization.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Enable artifact deploy -->
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<configuration>
<skipNexusStagingDeployMojo>false</skipNexusStagingDeployMojo>
</configuration>
</plugin>
<!-- Permits NbModuleSuite to be run in integration-test phase: -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<all.clusters>${all.clusters}</all.clusters>
<branding.token>${brandingToken}</branding.token>
</systemPropertyVariables>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>replace-windows-icon</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<skip>${skipCreateExe}</skip>
<!-- Target that replaces the icon for the launcher exe with our own icon. -->
<target name="replaceWindowsLauncherIcon" description="Replace the icon for the Windows launcher exe">
<!-- Windows -->
<echo message="Replacing icon of Windows launcher executable."/>
<exec dir="src/main/app-resources" executable="ReplaceVistaIcon.exe" resolveexecutable="true" osfamily="windows">
<arg line="${project.build.directory}/${brandingToken}/bin/${brandingToken}.exe gephi.ico 0"/>
</exec>
<exec dir="src/main/app-resources" executable="ReplaceVistaIcon.exe" resolveexecutable="true" osfamily="windows">
<arg line="${project.build.directory}/${brandingToken}/bin/${brandingToken}.exe gephifile.ico 1"/>
</exec>
<exec dir="src/main/app-resources" executable="ReplaceVistaIcon.exe" resolveexecutable="true" osfamily="windows">
<arg line="${project.build.directory}/${brandingToken}/bin/${brandingToken}64.exe gephi.ico 0"/>
</exec>
<exec dir="src/main/app-resources" executable="ReplaceVistaIcon.exe" resolveexecutable="true" osfamily="windows">
<arg line="${project.build.directory}/${brandingToken}/bin/${brandingToken}64.exe gephifile.ico 1"/>
</exec>
</target>
</configuration>
</execution>
<execution>
<id>download-jre</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target name="downloadJRE" description="Download JRE">
<!-- Download JRE (Mac OS X) -->
<exec dir="${project.build.directory}" os="Mac OS X" executable="curl" failonerror="true">
<arg line="-L"/>
<arg line="-C"/>
<arg line="-"/>
<arg line="-o"/>
<arg line="jre-${gephi.bundle.arch}.zip"/>
<arg line="${gephi.bundle.jre.macos}"/>
</exec>
<!-- Download JRE (Windows) -->
<exec dir="${project.build.directory}" osfamily="windows" executable="curl" failonerror="true">
<arg line="-L"/>
<arg line="-C"/>
<arg line="-"/>
<arg line="-o"/>
<arg line="jre-${gephi.bundle.arch}.zip"/>
<arg line="${gephi.bundle.jre.windows}"/>
</exec>
<!-- Download JRE (Linux) -->
<exec dir="${project.build.directory}" os="Linux" executable="curl" failonerror="true">
<arg line="-L"/>
<arg line="-C"/>
<arg line="-"/>
<arg line="-o"/>
<arg line="jre-${gephi.bundle.arch}.zip"/>
<arg line="${gephi.bundle.jre.linux}"/>
</exec>
<!-- Unzip archive -->
<mkdir dir="${project.build.directory}/${brandingToken}/jre-${gephi.bundle.arch}"/>
<exec dir="${project.build.directory}" executable="tar">
<arg line="-zxf"/>
<arg line="jre-${gephi.bundle.arch}.zip"/>
<arg line="-C "${brandingToken}/jre-${gephi.bundle.arch}""/>
</exec>
</target>
</configuration>
</execution>
<!-- Execute InnoSetup with the gephi.iss script -->
<execution>
<id>create-windows-installer</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<skip>${skipCreateExe}</skip>
<target name="createInstaller" description="Create Windows installer with InnoSetup">
<echo message="Creating windows installer with InnoSetup"/>
<delete file="${project.artifactId}-${project.version}-${gephi.bundle.arch}.setup.exe" failonerror="false"/>
<!-- Get the JRE folder name -->
<path id="jre_name">
<dirset dir="${project.build.directory}/${brandingToken}/jre-${gephi.bundle.arch}" includes="jdk*" />
</path>
<property name="bundle.jre.path" refid="jre_name" />
<basename property="bundle.jre.name" file="${bundle.jre.path}"/>
<!-- Configure relative JRE path into gephi.conf -->
<replace file="${project.build.directory}/${brandingToken}/etc/${brandingToken}.conf" token="#jdkhome="/path/to/jdk"" value="jdkhome="jre-${gephi.bundle.arch}\${bundle.jre.name}""/>
<chmod file="${project.build.directory}/${brandingToken}/jre-${gephi.bundle.arch}/**" perm="+x" type="both"/>
<!-- Windows -->
<exec dir="${project.build.directory}" executable="${gephi.innosetup.path}/Compil32.exe" osfamily="windows" failonerror="true">
<arg line="/cc "${brandingToken}.iss"" />
</exec>
</target>
</configuration>
</execution>
<!-- Create the Mac OS X application bundle and dmg file -->
<execution>
<id>create-app-bundle</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<skip>${skipCreateDmg}</skip>
<target>
<!-- Clean -->
<delete includeEmptyDirs="true" failonerror="false" removeNotFollowedSymlinks="true">
<fileset dir="${project.build.directory}/${gephi.appbundle.name}.app" followsymlinks="false"/>
<fileset dir="${project.build.directory}/${gephi.app.title}" followsymlinks="false"/>
<fileset dir="${project.build.directory}/${project.artifactId}-${project.version}-${gephi.bundle.arch}.dmg" followsymlinks="false"/>
</delete>
<delete file="${project.build.directory}/${project.artifactId}-${project.version}-${gephi.bundle.arch}.dmg" failonerror="false"/>
<!-- Delete Windows Executables -->
<delete file="${project.build.directory}/${brandingToken}/bin/${brandingToken}.exe" failonerror="false"/>
<delete file="${project.build.directory}/${brandingToken}/bin/${brandingToken}64.exe" failonerror="false"/>
<!-- Create folders -->
<mkdir dir="${project.build.directory}/${gephi.appbundle.name}.app"/>
<mkdir dir="${project.build.directory}/${gephi.appbundle.name}.app/Contents/MacOS"/>
<!-- Copy application -->
<copy todir="${project.build.directory}/${gephi.appbundle.name}.app/Contents/Resources/${brandingToken}">
<fileset dir="${project.build.directory}/${brandingToken}"/>
</copy>
<!-- Copy logo and configuration files -->
<copy tofile="${project.build.directory}/${gephi.appbundle.name}.app/Contents/Resources/${brandingToken}.icns" file="src/main/app-resources/${brandingToken}.icns" />
<copy tofile="${project.build.directory}/${gephi.appbundle.name}.app/Contents/Info.plist" file="${project.build.directory}/Info.plist"/>
<!-- Move Native Launcher into MacOS/gephi and modify the exec script to be runable -->
<copy tofile="${project.build.directory}/${gephi.appbundle.name}.app/Contents/MacOS/${brandingToken}" file="../../src/macosx-launcher/Binaries/AppLauncher_x86_64" />
<chmod file="${project.build.directory}/${gephi.appbundle.name}.app/Contents/MacOS/${brandingToken}" perm="ugo+rx"/>
<chmod file="${project.build.directory}/${gephi.appbundle.name}.app/Contents/Resources/${brandingToken}/bin/${brandingToken}" perm="ugo+rx"/>
<!-- Get the JRE folder name -->
<path id="jre_name">
<dirset dir="${project.build.directory}/${brandingToken}/jre-${gephi.bundle.arch}" includes="jdk*" />
</path>
<property name="bundle.jre.path" refid="jre_name" />
<basename property="bundle.jre.name" file="${bundle.jre.path}"/>
<!-- Move the JRE in the /Contents/PlugIns folder and cleanup -->
<move file="${project.build.directory}/${gephi.appbundle.name}.app/Contents/Resources/${brandingToken}/jre-${gephi.bundle.arch}/${bundle.jre.name}" todir="${project.build.directory}/${gephi.appbundle.name}.app/Contents/PlugIns" />
<delete includeEmptyDirs="true">
<fileset dir="${project.build.directory}/${gephi.appbundle.name}.app/Contents/Resources/${brandingToken}/jre-${gephi.bundle.arch}"/>
</delete>
<!-- Remove quarantine bit set recursively on JRE -->
<exec dir="${project.build.directory}" os="Mac OS X" executable="xattr">
<arg line="-rd"/>
<arg line="com.apple.quarantine"/>
<arg line=""${gephi.appbundle.name}.app/Contents/PlugIns""/>
</exec>
<!-- Configure relative JRE path into gephi.conf -->
<replace file="${project.build.directory}/${gephi.appbundle.name}.app/Contents/Resources/${brandingToken}/etc/${brandingToken}.conf" token="#jdkhome="/path/to/jdk"" value="jdkhome="../../PlugIns/${bundle.jre.name}/Contents/Home""/>
<chmod file="${project.build.directory}/${gephi.appbundle.name}.app/Contents/PlugIns/**" perm="+x" type="both"/>
<!-- Codesign -->
<exec executable="/bin/bash" os="Mac OS X" failonerror="true">
<arg value="src/main/app-resources/codesign.sh" />
<arg value="${project.build.directory}/${gephi.appbundle.name}.app" />
<arg value="${gephi.codesign.identity}" />
</exec>
<!-- Create application folder and add Applications dynamic link -->
<mkdir dir="${project.build.directory}/${gephi.app.title}"/>
<move file="${project.build.directory}/${gephi.appbundle.name}.app" todir="${project.build.directory}/${gephi.app.title}/" />
<symlink link="${project.build.directory}/${gephi.app.title}/Applications" resource="/Applications" failonerror="false" />
<!-- Create DMG (Mac OS X) -->
<exec dir="${project.build.directory}" os="Mac OS X" executable="hdiutil">
<arg value="create"/>
<arg value="-noanyowners"/>
<arg value="-imagekey"/>
<arg value="zlib-level=9"/>
<arg value="-srcfolder"/>
<arg value="${project.build.directory}/${gephi.app.title}"/>
<arg value="${project.artifactId}-${project.version}-${gephi.bundle.arch}.dmg"/>
</exec>
<!-- Codesign dmg -->
<exec dir="${project.build.directory}" os="Mac OS X" executable="codesign">
<arg value="--sign"/>
<arg value="${gephi.codesign.identity}"/>
<arg value="--timestamp"/>
<arg value="-i"/>
<arg value="org.gephi"/>
<arg value="${project.artifactId}-${project.version}-${gephi.bundle.arch}.dmg"/>
</exec>
</target>
</configuration>
</execution>
<!-- Notarize DMG using Apple's notarization service (requires Xcode 13) -->
<execution>
<id>notarize-dmg</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<skip>${skipAppleNotarization}</skip>
<target>
<!-- Send DMG file to Apple's notarization service -->
<exec dir="${project.build.directory}" os="Mac OS X" executable="xcrun" failonerror="true">
<arg value="notarytool"/>
<arg value="submit"/>
<arg value="${project.artifactId}-${project.version}-${gephi.bundle.arch}.dmg"/>
<arg value="--apple-id"/>
<arg value="${gephi.apple.notarization.username}"/>
<arg value="--password"/>
<arg value="${gephi.apple.notarization.password}"/>
<arg value="--team-id"/>
<arg value="${gephi.apple.notarization.teamId}"/>
<arg value="--wait"/>
<arg value="--timeout"/>
<arg value="${gephi.apple.notarization.timeout}"/>
</exec>
<!-- Staple the notarization ticket to the DMG bundle -->
<exec dir="${project.build.directory}" os="Mac OS X" executable="xcrun" failonerror="true">
<arg value="stapler"/>
<arg value="staple"/>
<arg value="${project.artifactId}-${project.version}-${gephi.bundle.arch}.dmg"/>
</exec>
</target>
</configuration>
</execution>
<!-- Create tar.gz bundle for Linux -->
<execution>
<id>create-targz</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<skip>${skipCreateTargz}</skip>
<target>
<!-- Get the JRE folder name -->
<path id="jre_name">
<dirset dir="${project.build.directory}/${brandingToken}/jre-${gephi.bundle.arch}" includes="jdk*" />
</path>
<property name="bundle.jre.path" refid="jre_name" />
<basename property="bundle.jre.name" file="${bundle.jre.path}"/>
<!-- Configure relative JRE path into gephi.conf -->
<replace file="${project.build.directory}/${brandingToken}/etc/${brandingToken}.conf" token="#jdkhome="/path/to/jdk"" value="jdkhome="jre-${gephi.bundle.arch}/${bundle.jre.name}""/>
<chmod file="${project.build.directory}/${brandingToken}/jre-${gephi.bundle.arch}/**" perm="+x" type="both"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
<!-- Assembler to produce linux's tar.gz -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>linux-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<skipAssembly>${skipCreateTargz}</skipAssembly>
<tarLongFileMode>gnu</tarLongFileMode>
<finalName>${brandingToken}-${project.version}</finalName>
<descriptors>
<descriptor>src/assemble/linux.xml</descriptor>
</descriptors>
<attach>false</attach>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<!-- Attach tar.gz artifact -->
<execution>
<id>attach-linux</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<skipAttach>${skipCreateTargz}</skipAttach>
<artifacts>
<artifact>
<file>${basedir}/target/${brandingToken}-${project.version}-linux-${gephi.bundle.arch}.tar.gz</file>
<type>tar.gz</type>
<classifier>linux-${gephi.bundle.arch}</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
<!-- Attach the final exe installer for deployment -->
<execution>
<id>attach-exe</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<skipAttach>${skipCreateExe}</skipAttach>
<artifacts>
<artifact>
<file>${project.build.directory}/${project.artifactId}-${project.version}-${gephi.bundle.arch}.setup.exe</file>
<type>exe</type>
<classifier>windows-${gephi.bundle.arch}</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
<!-- Attach the final DMG for deployment -->
<execution>
<id>attach-dmg</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<skipAttach>${skipCreateDmg}</skipAttach>
<artifacts>
<artifact>
<file>${project.build.directory}/${project.artifactId}-${project.version}-${gephi.bundle.arch}.dmg</file>
<type>dmg</type>
<classifier>macos-${gephi.bundle.arch}</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile used along with deployment to create the autoupdate site -->
<profile>
<id>create-autoupdate</id>
<build>
<plugins>
<!-- NBM Plugin settings. Enable the autoupdate generation -->
<plugin>
<groupId>org.apache.netbeans.utilities</groupId>
<artifactId>nbm-maven-plugin</artifactId>
<executions>
<execution>
<id>autoupdate</id>
<goals>
<goal>autoupdate</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Copy only update.xml and update.xml.gz to a custom autoupdate_site folder -->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>copy-autoupdate</id>
<phase>package</phase>
<configuration>
<target>
<copy todir="${project.build.directory}/autoupdate_site">
<fileset dir="${project.build.directory}/netbeans_site">
<include name="updates.xml*"/>
<type type="file"/>
</fileset>
</copy>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile used along with deployment to create the sources artifact -->
<profile>
<id>create-sources</id>
<build>
<plugins>
<!-- Attach parent's sources artifact -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<phase>pre-integration-test</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${basedir}/../../target/${brandingToken}-${project.version}-sources.tar.gz</file>
<type>tar.gz</type>
<classifier>sources</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Attach aggregate Javadoc, need to be run with site phase -->
<profile>
<id>create-javadoc</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>attach-javadoc-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<!-- Aggregate file is generated in gephi-parent but attached here -->
<file>${project.parent.basedir}/target/${project.artifactId}-parent-${project.version}-javadoc.jar</file>
<type>jar</type>
<classifier>javadoc</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile used along with deployment to create the tar.gz artifact -->
<profile>
<id>create-targz</id>
<properties>
<skipCreateTargz>false</skipCreateTargz>
</properties>
</profile>
<!-- Profile activated for windows release in addition of deployement. Create the installer. -->
<profile>
<id>create-exe</id>
<properties>
<skipCreateExe>false</skipCreateExe>
</properties>
<build>
<plugins>
<!-- Copy and filter the InnoSetup config file, as well as icons -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>generate-iss-file</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<escapeString>!!!</escapeString>
<outputDirectory>${basedir}/target</outputDirectory>
<resources>
<resource>
<directory>src/main/app-resources</directory>
<includes>
<include>${brandingToken}.iss</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/app-resources</directory>
<includes>
<include>${brandingToken}.ico</include>
<include>${brandingToken}file128.png</include>
<include>COPYING.txt</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- Sign the installer using the codesign certificate -->
<plugin>
<groupId>net.jsign</groupId>
<artifactId>jsign-maven-plugin</artifactId>
<executions>
<execution>
<id>sign-exe</id>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<fileset>
<directory>target</directory>
<includes>
<include>*.exe</include>
</includes>
</fileset>
<name>Gephi</name>
<url>https://gephi.org</url>
<keystore>${gephi.windows.codesign.keystore}</keystore>
<storepass>${gephi.windows.codesign.password}</storepass>
<tsaurl>http://timestamp.sectigo.com</tsaurl>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile used along with deployment to create the dmg archive -->
<profile>
<id>create-dmg</id>
<properties>
<skipCreateDmg>false</skipCreateDmg>
</properties>
</profile>
<!-- Profile used along with deployment and create-dmg to notarize the bundle -->
<profile>
<id>notarize-dmg</id>
<properties>
<skipAppleNotarization>false</skipAppleNotarization>
</properties>
</profile>
<!-- Profile that pushes the /autoupdate_site folder to GitHub's gephi-repository -->
<profile>
<id>push-site</id>
<build>
<plugins>
<!-- Publish site folder to GitHub's gh-pages branch -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<configuration>
<content>${project.build.directory}/autoupdate_site</content>
<scmBranch>gh-pages</scmBranch>
<checkinComment>Autoupdate update for ${project.version}</checkinComment>
<subDirectory>${gephi.minor.version}/autoupdate</subDirectory>
<serverId>github</serverId>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>