Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

1497 lines (1341 sloc) 58.115 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/maven-v4_0_0.xsd">
<!--
PMS consists of two major parts: PMS itself and the third party software needed to
run it. While PMS itself is 100% pure Java, some of the third party software is
not. This means building a platform specific distribution boils down to first
building the pms.jar and then assembling all application resources.
Note that Maven 3 does not automatically install all dependencies, unlike Maven 2.
To install all dependencies to your local repository, run the following commands:
mvn com.savage7.maven.plugins:maven-external-dependency-plugin:resolve-external
mvn com.savage7.maven.plugins:maven-external-dependency-plugin:install-external
To build PMS, do:
mvn clean package
After building, the "target" directory will contain the binary.
To generate a full source code report, do:
mvn site
After generating, the "target/site" directory will contain the reports.
-->
<modelVersion>4.0.0</modelVersion>
<groupId>net.pms</groupId>
<artifactId>pms</artifactId>
<name>PS3 Media Server</name>
<packaging>jar</packaging>
<version>1.81.0</version> <!-- XXX don't forget to update project.version.short below -->
<url>http://www.ps3mediaserver.org/</url>
<inceptionYear>2008</inceptionYear>
<!-- this is not required, but is recommended for plugin version checks -->
<prerequisites>
<maven>2.2.1</maven>
</prerequisites>
<organization>
<name>PS3 Media Server</name>
<url>http://www.ps3mediaserver.org/</url>
</organization>
<licenses>
<license>
<name>GNU General Public License version 2</name>
<url>http://www.gnu.org/licenses/gpl-2.0.txt</url>
<distribution>manual</distribution>
</license>
</licenses>
<description>
PS3 Media Server is a cross-platform DLNA-compliant UPnP Media Server.
Originally written to support the PlayStation 3, PS3 Media Server has been
expanded to support a range of other media renderers, including smartphones,
televisions, music players and more.
</description>
<scm>
<connection>scm:git:git://github.com/ps3mediaserver/ps3mediaserver.git</connection>
<developerConnection>scm:git:git@github.com:ps3mediaserver/ps3mediaserver.git</developerConnection>
<tag>master</tag>
<url>https://github.com/ps3mediaserver/ps3mediaserver</url>
</scm>
<issueManagement>
<system>Google Code</system>
<url>http://code.google.com/p/ps3mediaserver/issues/list</url>
</issueManagement>
<properties>
<!-- NSIS needs a version without "-SNAPSHOT" or "-b1" -->
<project.version.short>1.81.0</project.version.short>
<!--
JNA 3.4.0 solves issue #1152, but causes a bug in Windows.
The version is therefore overruled in the Windows profile.
This property should be removed when Windows can use the
same version.
-->
<jna-version>3.4.0</jna-version>
<cuelib-version>1.2.1-2008-06-13</cuelib-version>
<jgoodies-common-version>1.2.1</jgoodies-common-version>
<jgoodies-forms-version>1.4.2</jgoodies-forms-version>
<jgoodies-looks-version>2.4.2</jgoodies-looks-version>
<junrar-version>0.7</junrar-version>
<mediautil-version>1.0</mediautil-version>
<xmlwise-version>1.2</xmlwise-version>
<!--
the xmlwise jar's filename uses underscores for the version rather than dots e.g. xmlwise-1_2.jar.
dynamic properties are a DRYer/saner solution, but I couldn't get properties-maven-plugin
to work with Maven 2.2.1...
-->
<xmlwise-filename-version>1_2</xmlwise-filename-version>
<slf4j-version>1.7.1</slf4j-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.external-resources>${project.basedir}/src/main/external-resources</project.external-resources>
<project.binaries>${project.basedir}/target/bin</project.binaries>
<!-- Snapshots should get their binaries from the trunk, releases from a tag -->
<project.binaries-base>http://ps3mediaserver.googlecode.com/svn/tags/${project.version}/ps3mediaserver</project.binaries-base>
<!-- <project.binaries-base>http://ps3mediaserver.googlecode.com/svn/trunk/ps3mediaserver</project.binaries-base> -->
<maven.nsis.project.template>${project.basedir}/src/main/external-resources/nsis/project.jelly</maven.nsis.project.template>
<maven-javadoc-plugin-version>2.9</maven-javadoc-plugin-version>
<git-commit-id-plugin-version>2.1.4</git-commit-id-plugin-version>
</properties>
<pluginRepositories>
<pluginRepository>
<id>ossrh</id>
<name>Sonatype OSS Repository</name>
<url>http://oss.sonatype.org/content/groups/public</url>
<layout>default</layout>
</pluginRepository>
</pluginRepositories>
<repositories>
<!-- Java.net -->
<repository>
<id>java.net</id>
<name>Java.net Repository</name>
<url>http://download.java.net/maven/2/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<!-- netty -->
<repository>
<id>jboss</id>
<url>http://repository.jboss.org/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<!-- GSON -->
<repository>
<id>google-gson</id>
<name>google-gson</name>
<url>https://google-gson.googlecode.com/svn/mavenrepo/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<!-- JBoss.org repository -->
<repository>
<id>jboss.releases</id>
<name>JBoss releases</name>
<url>https://repository.jboss.org/nexus/content/repositories/releases/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<!-- JUnRar by Edmund Wagner -->
<repository>
<id>JUnRar mirror repository</id>
<name>JUnRar mirror repository</name>
<url>https://junrar-repository.googlecode.com/svn/deploy/</url>
</repository>
<!-- for jai-imageio-core-standalone, which is used by Thumbnailator -->
<repository>
<releases />
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>mygrid-repository</id>
<name>myGrid Repository</name>
<url>http://www.mygrid.org.uk/maven/repository</url>
</repository>
</repositories>
<dependencies>
<!-- TODO this can be removed when MEncoder is removed -->
<dependency>
<groupId>org.beanshell</groupId>
<artifactId>bsh-core</artifactId>
<version>2.0b4</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.9</version>
<exclusions>
<!-- no need for commons-logging, as jcl-over-slf4j provides the impl -->
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
<exclusions>
<!-- no need for commons-logging, as jcl-over-slf4j provides the impl -->
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.168</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.0.7</version>
</dependency>
<dependency>
<groupId>org.apache.sanselan</groupId>
<artifactId>sanselan</artifactId>
<version>0.97-incubator</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j-version}</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.2</version>
</dependency>
<!-- originally, hamcrest-all 1.2RC2 for the artifact change, see: https://code.google.com/p/hamcrest/issues/detail?id=12#c54
FIXME: verify if needed -->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-integration</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.jboss.netty</groupId>
<artifactId>netty</artifactId>
<version>3.2.7.Final</version>
</dependency>
<!-- maven replacement for nsisant-1.2.jar -->
<dependency>
<groupId>maven</groupId>
<artifactId>maven-nsis-plugin</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>net.java.dev.rome</groupId>
<artifactId>rome</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.2</version>
</dependency>
<!--
this is not used on its own, but rather provides
ImageReader subclasses that make support for additional
formats (e.g. TIFF) available to the ImageIO API, and thus
to Thumbnailator (our built-in image thumbnailer).
XXX be careful upgrading this. this version is redistributable;
other versions may not be:
https://code.google.com/p/thumbnailator/issues/detail?id=32
https://github.com/stain/jai-imageio-core
http://stackoverflow.com/questions/1209583/using-java-advanced-imaging-with-maven
-->
<dependency>
<groupId>net.java.dev.jai-imageio</groupId>
<artifactId>jai-imageio-core-standalone</artifactId>
<version>1.2-pre-dr-b04-2011-07-04</version>
</dependency>
<dependency>
<groupId>org</groupId>
<artifactId>jaudiotagger</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>${jna-version}</version>
</dependency>
<!-- XXX: not Mavenized: http://www.jgoodies.com/downloads/libraries.html -->
<dependency>
<groupId>com.jgoodies</groupId>
<artifactId>common</artifactId>
<version>${jgoodies-common-version}</version>
</dependency>
<!-- XXX: not Mavenized: http://www.jgoodies.com/downloads/libraries.html -->
<dependency>
<groupId>com.jgoodies</groupId>
<artifactId>forms</artifactId>
<version>${jgoodies-forms-version}</version>
</dependency>
<!-- XXX: not Mavenized: http://www.jgoodies.com/downloads/libraries.html -->
<dependency>
<groupId>com.jgoodies</groupId>
<artifactId>looks</artifactId>
<version>${jgoodies-looks-version}</version>
</dependency>
<dependency>
<groupId>com.github.junrar</groupId>
<artifactId>junrar</artifactId>
<version>${junrar-version}</version>
</dependency>
<!-- XXX: not Mavenized: https://code.google.com/p/cuelib/ -->
<dependency>
<groupId>jwbroek.cuelib</groupId>
<artifactId>cuelib</artifactId>
<version>${cuelib-version}</version>
</dependency>
<!-- XXX: not Mavenized: http://sourceforge.net/projects/mediachest/ -->
<dependency>
<groupId>mediautil</groupId>
<artifactId>mediautil</artifactId>
<version>${mediautil-version}</version>
</dependency>
<!-- XXX: not Mavenized: https://code.google.com/p/xmlwise/ -->
<dependency>
<groupId>com.googlecode</groupId>
<artifactId>xmlwise</artifactId>
<version>${xmlwise-version}</version>
</dependency>
<dependency>
<groupId>com.googlecode.juniversalchardet</groupId>
<artifactId>juniversalchardet</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easytesting</groupId>
<artifactId>fest-assert</artifactId>
<version>1.4</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<defaultGoal>assembly:assembly</defaultGoal>
<resources>
<!--
squashed bug: this needs to be defined explicitly if a <resources>...</resources>
section is used
-->
<resource>
<directory>src/main/resources</directory>
<!--
By default, Maven packages resources in the top-level of the jar.
For compatibility with trunk PMS, we preserve that destination. If this is
ever changed to the Maven default, a handful of files will need to be changed
to reference "/resource.name" rather than "/resources/resource.name"
-->
<targetPath>resources</targetPath>
<excludes>
<exclude>project.properties</exclude>
</excludes>
<!-- Avoid inadvertently filtering binaries -->
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<targetPath>resources</targetPath>
<includes>
<include>project.properties</include>
</includes>
<!-- Filter to replace Maven properties -->
<filtering>true</filtering>
</resource>
<!-- Copy and filter the NSIS header file to replace Maven properties -->
<resource>
<directory>src/main/external-resources/nsis</directory>
<includes>
<include>extra.nsh</include>
</includes>
<filtering>true</filtering>
<targetPath>..</targetPath>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<includes>
<include>project.properties</include>
</includes>
<targetPath>resources</targetPath>
<!-- Enable the use of Maven properties -->
<filtering>true</filtering>
</testResource>
<!--*.srt files to test charset detection-->
<testResource>
<directory>src/test/resources/net/pms/util</directory>
<includes>
<include>*.srt</include>
</includes>
<targetPath>net/pms/util</targetPath>
</testResource>
</testResources>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!--
1) Force language because JUnit tests depend on English language strings
2) Use our JNA dependency rather than the system's - fixes
the following error on Linux (Ubuntu 12.04 with system
jna-3.2.7.jar via libjna-java):
There is an incompatible JNA native library installed on this system.
-->
<argLine>-Duser.language=en -Djna.nosys=true</argLine> <!-- only one argLine element is processed -->
</configuration>
<version>2.12.3</version>
</plugin>
<!-- This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. -->
<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-antrun-plugin
</artifactId>
<versionRange>
[1.7,)
</versionRange>
<goals>
<goal>run</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
pl.project13.maven
</groupId>
<artifactId>
git-commit-id-plugin
</artifactId>
<versionRange>
[${git-commit-id-plugin-version},)
</versionRange>
<goals>
<goal>revision</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!--
Plugin to add git commit information properties.
These are used in the project.properties files.
See: https://github.com/ktoso/maven-git-commit-id-plugin
-->
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>${git-commit-id-plugin-version}</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
<configuration>
<dateFormat>yyyy-MM-dd</dateFormat>
<verbose>false</verbose>
<generateGitPropertiesFile>false</generateGitPropertiesFile>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<additionalProjectnatures>
<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
</additionalProjectnatures>
<additionalBuildcommands>
<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
</additionalBuildcommands>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
<wtpversion>1.5</wtpversion>
</configuration>
</plugin>
<plugin>
<artifactId>maven-idea-plugin</artifactId>
<version>2.2</version>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
<dependenciesAsLibraries>true</dependenciesAsLibraries>
<useFullNames>false</useFullNames>
</configuration>
</plugin>
<!--
This plugin will take care of installing the external dependencies that do not
exist in a public Maven repository. That is why we store some jar files in the
"src/main/external-resources/lib" directory and have this plugin take care of
the installation at build time.
Note: The plugin does not work automatically in Maven 3. To install the required
dependencies execute the following commands:
mvn com.savage7.maven.plugins:maven-external-dependency-plugin:resolve-external
mvn com.savage7.maven.plugins:maven-external-dependency-plugin:install-external
Checksums can be calculated with "openssl sha1 [filename]".
See: http://code.google.com/p/maven-external-dependency-plugin/issues/detail?id=8#c4
-->
<plugin>
<groupId>com.savage7.maven.plugins</groupId>
<artifactId>maven-external-dependency-plugin</artifactId>
<version>0.5</version>
<inherited>false</inherited>
<configuration>
<stagingDirectory>${project.build.directory}/dependencies/</stagingDirectory>
<createChecksum>true</createChecksum>
<skipChecksumVerification>false</skipChecksumVerification>
<force>false</force>
<artifactItems>
<artifactItem>
<groupId>com.jgoodies</groupId>
<artifactId>common</artifactId>
<version>${jgoodies-common-version}</version>
<packaging>jar</packaging>
<install>true</install>
<force>false</force>
<downloadUrl>http://www.jgoodies.com/download/libraries/{artifactId}/jgoodies-{artifactId}-{_version}.zip</downloadUrl>
<checksum>5a4cf9866a7339e64e52f46101b5b13fe50b9c80</checksum>
<extractFile>jgoodies-{artifactId}-{version}/jgoodies-{artifactId}-{version}.{packaging}</extractFile>
<extractFileChecksum>f3955d59f2263fb889b02febec74377647a2eaba</extractFileChecksum>
</artifactItem>
<artifactItem>
<groupId>com.jgoodies</groupId>
<artifactId>forms</artifactId>
<version>${jgoodies-forms-version}</version>
<packaging>jar</packaging>
<install>true</install>
<force>false</force>
<downloadUrl>http://www.jgoodies.com/download/libraries/{artifactId}/jgoodies-{artifactId}-{_version}.zip</downloadUrl>
<checksum>83bb8780a38cb6bc854964da298f0f657868871d</checksum>
<extractFile>jgoodies-{artifactId}-{version}/jgoodies-{artifactId}-{version}.{packaging}</extractFile>
<extractFileChecksum>de8a67990cbeae62910cc2022f06c466476f2f2b</extractFileChecksum>
</artifactItem>
<artifactItem>
<groupId>com.jgoodies</groupId>
<artifactId>looks</artifactId>
<version>${jgoodies-looks-version}</version>
<packaging>jar</packaging>
<install>true</install>
<force>false</force>
<downloadUrl>http://www.jgoodies.com/download/libraries/{artifactId}/jgoodies-{artifactId}-{_version}.zip</downloadUrl>
<checksum>ccba2963e63c8349f8a16a10abfd5102a94a182b</checksum>
<extractFile>jgoodies-{artifactId}-{version}/jgoodies-{artifactId}-{version}.{packaging}</extractFile>
<extractFileChecksum>535745c08e342f7ea78556baad44a4a52ffb7863</extractFileChecksum>
</artifactItem>
<artifactItem>
<groupId>jwbroek.cuelib</groupId>
<artifactId>cuelib</artifactId>
<version>${cuelib-version}</version>
<packaging>jar</packaging>
<downloadUrl>http://cuelib.googlecode.com/files/cuelib-${cuelib-version}.jar</downloadUrl>
<checksum>d03b6b960b3b83a2a419e8b5f07b6ba4bd18387b</checksum>
</artifactItem>
<artifactItem>
<groupId>mediautil</groupId>
<artifactId>mediautil</artifactId>
<version>${mediautil-version}</version>
<packaging>jar</packaging>
<install>true</install>
<force>false</force>
<downloadUrl>http://downloads.sourceforge.net/project/mediachest/MediaUtil/Version%201.0/mediautil-1.zip</downloadUrl>
<checksum>aa7ae51bb24a9268a8e57c6afe478c4293f84fda</checksum>
<extractFile>mediautil-${mediautil-version}/mediautil-${mediautil-version}.jar</extractFile>
<extractFileChecksum>e843cd55def75dce57123c79b7f36caca4841466</extractFileChecksum>
</artifactItem>
<artifactItem>
<groupId>com.googlecode</groupId>
<artifactId>xmlwise</artifactId>
<version>${xmlwise-version}</version>
<packaging>jar</packaging>
<install>true</install>
<force>false</force>
<downloadUrl>https://xmlwise.googlecode.com/files/xmlwise-${xmlwise-filename-version}.jar</downloadUrl>
<checksum>82ed648273281ccd08da6f91df30573edf15185d</checksum>
</artifactItem>
</artifactItems>
</configuration>
<executions>
<execution>
<id>clean-external-dependencies</id>
<phase>clean</phase>
<goals>
<!-- mvn com.savage7.maven.plugins:maven-external-dependency-plugin:clean-external -->
<goal>clean-external</goal>
</goals>
</execution>
<execution>
<id>resolve-install-external-dependencies</id>
<!-- Note: this phase works in Maven 2. In Maven 3, it needs to be triggered manually. See above -->
<phase>validate</phase>
<goals>
<!-- mvn com.savage7.maven.plugins:maven-external-dependency-plugin:resolve-external -->
<goal>resolve-external</goal>
<!-- mvn com.savage7.maven.plugins:maven-external-dependency-plugin:install-external -->
<goal>install-external</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.1</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-module-docbook-simple</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<configuration>
<reportPlugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.4</version>
<reports>
<report>index</report>
<report>dependencies</report>
<report>dependency-convergence</report>
<report>dependency-management</report>
<report>plugins</report>
</reports>
</plugin>
<!-- PMS tests report -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.5</version>
<configuration>
<showSuccess>false</showSuccess>
</configuration>
</plugin>
<!-- Javadoc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin-version}</version>
<configuration>
<quiet>true</quiet>
<tags>
<tag>
<name>todo</name>
<placement>a</placement>
<head>To Do:</head>
</tag>
<tag>
<name>review</name>
<placement>a</placement>
<head>Review:</head>
</tag>
</tags>
<detectJavaApiLink>false</detectJavaApiLink>
<links>
<link>http://download.oracle.com/javase/6/docs/api/</link>
</links>
<!--
Doclet to generate class diagrams inside Javadoc.
Requires the installation of Graphviz (http://www.graphviz.org/)
-->
<doclet>org.jboss.apiviz.APIviz</doclet>
<docletArtifact>
<groupId>org.jboss.apiviz</groupId>
<artifactId>apiviz</artifactId>
<version>1.3.1.GA</version>
</docletArtifact>
<useStandardDocletOptions>true</useStandardDocletOptions>
</configuration>
</plugin>
<!-- Class dependency report -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jdepend-maven-plugin</artifactId>
<version>2.0-beta-2</version>
</plugin>
<!-- Findbugs report -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.3.2</version>
</plugin>
<!-- Checkstyle report will go out of memory because of the huge amount of issues it finds(!)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.8</version>
</plugin>
-->
<!-- Cobertura Test Coverage report -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.1</version>
</plugin>
<!-- PMD and CPD code analysis report -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.6</version>
<configuration>
<linkXref>false</linkXref>
<sourceEncoding>utf-8</sourceEncoding>
<minimumTokens>100</minimumTokens>
<targetJdk>1.6</targetJdk>
</configuration>
</plugin>
<!-- L10n internationalization report -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>l10n-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<configuration>
<locales>
<locale>de</locale>
<locale>bg</locale>
<locale>br</locale>
<locale>ca</locale>
<locale>cz</locale>
<locale>da</locale>
<locale>de</locale>
<locale>el</locale>
<locale>es</locale>
<locale>fi</locale>
<locale>fr</locale>
<locale>is</locale>
<locale>it</locale>
<locale>ja</locale>
<locale>ko</locale>
<locale>nl</locale>
<locale>no</locale>
<locale>pl</locale>
<locale>pt</locale>
<locale>ro</locale>
<locale>ru</locale>
<locale>sl</locale>
<locale>sv</locale>
<locale>zhs</locale>
<locale>zht</locale>
</locales>
</configuration>
</plugin>
</reportPlugins>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin-version}</version>
</plugin>
</plugins>
</build>
<profiles>
<!--
Windows profile: takes care of building the final package for Microsoft Windows
-->
<profile>
<id>windows</id>
<activation>
<activeByDefault>false</activeByDefault>
<os>
<family>windows</family>
</os>
</activation>
<properties>
<!--
Last known JNA version known not to cause a Java crash
when browsing folders with files in them on Windows.
-->
<jna-version>3.2.5</jna-version>
</properties>
<pluginRepositories>
<pluginRepository>
<id>Codehaus Snapshots</id>
<url>http://nexus.codehaus.org/snapshots/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
<build>
<plugins>
<!-- Plugin to assemble a jar with dependencies -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>make-jar-with-dependencies-win</id>
<phase>prepare-package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>${project.basedir}/src/main/assembly/jar-with-dependencies.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>net.pms.PMS</mainClass>
<!--
this is required to make the ImageIo image "plugins" provided by jai-imageio-core-standalone work.
without it, the following exception is thrown when PMS starts:
Configuration error: java.util.ServiceConfigurationError: javax.imageio.spi.ImageInputStreamSpi:
Provider com.sun.media.imageioimpl.stream.ChannelImageInputStreamSpi could not be instantiated:
java.lang.IllegalArgumentException: vendorName == null!
See: https://thierrywasyl.wordpress.com/2009/07/24/jai-how-to-solve-vendorname-null-exception/
-->
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</execution>
</executions>
</plugin>
<!--
Plugin to move the pms-x.x.x-jar-with-dependencies.jar to pms.jar
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>process-resources-windows</id>
<phase>process-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<!-- Make sure the download folders exist -->
<mkdir dir="${project.binaries}" />
<mkdir dir="${project.binaries}/win32" />
<mkdir dir="${project.binaries}/win32/codecs" />
<mkdir dir="${project.binaries}/win32/dvrms" />
<mkdir dir="${project.binaries}/win32/fonts" />
<mkdir dir="${project.binaries}/win32/fonts/conf.avail" />
<mkdir dir="${project.binaries}/win32/fonts/conf.d" />
<mkdir dir="${project.binaries}/win32/fonts" />
<mkdir dir="${project.binaries}/win32/mplayer" />
<mkdir dir="${project.binaries}/win32/service" />
<!-- Download all necessary Windows binaries. Keep the same structure because NSIS expects it that way. -->
<get src="${project.binaries-base}/MediaInfo.dll" dest="${project.binaries}/MediaInfo.dll" usetimestamp="true" />
<get src="${project.binaries-base}/MediaInfo64.dll" dest="${project.binaries}/MediaInfo64.dll" usetimestamp="true" />
<get src="${project.binaries-base}/win32/Convert_License.txt" dest="${project.binaries}/win32/Convert_License.txt" usetimestamp="true" />
<get src="${project.binaries-base}/win32/LICENSE.txt" dest="${project.binaries}/win32/LICENSE.txt" usetimestamp="true" />
<get src="${project.binaries-base}/win32/builds.txt" dest="${project.binaries}/win32/builds.txt" usetimestamp="true" />
<get src="${project.binaries-base}/win32/convert.exe" dest="${project.binaries}/win32/convert.exe" usetimestamp="true" />
<get src="${project.binaries-base}/win32/dcrawMS.exe" dest="${project.binaries}/win32/dcrawMS.exe" usetimestamp="true" />
<get src="${project.binaries-base}/win32/ffmpeg.exe" dest="${project.binaries}/win32/ffmpeg.exe" usetimestamp="true" />
<get src="${project.binaries-base}/win32/flac.exe" dest="${project.binaries}/win32/flac.exe" usetimestamp="true" />
<get src="${project.binaries-base}/win32/mencoder.exe" dest="${project.binaries}/win32/mencoder.exe" usetimestamp="true" />
<get src="${project.binaries-base}/win32/mplayer.exe" dest="${project.binaries}/win32/mplayer.exe" usetimestamp="true" />
<get src="${project.binaries-base}/win32/pthreadGC2.dll" dest="${project.binaries}/win32/pthreadGC2.dll" usetimestamp="true" />
<get src="${project.binaries-base}/win32/tsMuxeR.exe" dest="${project.binaries}/win32/tsMuxeR.exe" usetimestamp="true" />
<get src="${project.binaries-base}/win32/vcomp100.dll" dest="${project.binaries}/win32/vcomp100.dll" usetimestamp="true" />
<get src="${project.binaries-base}/win32/codecs/drv33260.dll" dest="${project.binaries}/win32/codecs/drv33260.dll" usetimestamp="true" />
<get src="${project.binaries-base}/win32/codecs/drv43260.dll" dest="${project.binaries}/win32/codecs/drv43260.dll" usetimestamp="true" />
<get src="${project.binaries-base}/win32/codecs/pncrt.dll" dest="${project.binaries}/win32/codecs/pncrt.dll" usetimestamp="true" />
<get src="${project.binaries-base}/win32/codecs/sipr3260.dll" dest="${project.binaries}/win32/codecs/sipr3260.dll" usetimestamp="true" />
<get src="${project.binaries-base}/win32/codecs/tokr3260.dll" dest="${project.binaries}/win32/codecs/tokr3260.dll" usetimestamp="true" />
<get src="${project.binaries-base}/win32/codecs/wma9dmod.dll" dest="${project.binaries}/win32/codecs/wma9dmod.dll" usetimestamp="true" />
<get src="${project.binaries-base}/win32/codecs/wmv9dmod.dll" dest="${project.binaries}/win32/codecs/wmv9dmod.dll" usetimestamp="true" />
<get src="${project.binaries-base}/win32/codecs/wmvdmod.dll" dest="${project.binaries}/win32/codecs/wmvdmod.dll" usetimestamp="true" />
<get src="${project.binaries-base}/win32/dvrms/ffmpeg_MPGMUX.exe" dest="${project.binaries}/win32/dvrms/ffmpeg_MPGMUX.exe" usetimestamp="true" />
<get src="${project.binaries-base}/win32/dvrms/pthreadGC2.dll" dest="${project.binaries}/win32/dvrms/pthreadGC2.dll" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/fonts.conf" dest="${project.binaries}/win32/fonts/fonts.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/fonts.dtd" dest="${project.binaries}/win32/fonts/fonts.dtd" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/10-autohint.conf" dest="${project.binaries}/win32/fonts/conf.avail/10-autohint.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/10-no-sub-pixel.conf" dest="${project.binaries}/win32/fonts/conf.avail/10-no-sub-pixel.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/10-sub-pixel-bgr.conf" dest="${project.binaries}/win32/fonts/conf.avail/10-sub-pixel-bgr.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/10-sub-pixel-rgb.conf" dest="${project.binaries}/win32/fonts/conf.avail/10-sub-pixel-rgb.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/10-sub-pixel-vbgr.conf" dest="${project.binaries}/win32/fonts/conf.avail/10-sub-pixel-vbgr.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/10-sub-pixel-vrgb.conf" dest="${project.binaries}/win32/fonts/conf.avail/10-sub-pixel-vrgb.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/10-unhinted.conf" dest="${project.binaries}/win32/fonts/conf.avail/10-unhinted.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/11-lcdfilter-default.conf" dest="${project.binaries}/win32/fonts/conf.avail/11-lcdfilter-default.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/11-lcdfilter-legacy.conf" dest="${project.binaries}/win32/fonts/conf.avail/11-lcdfilter-legacy.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/11-lcdfilter-light.conf" dest="${project.binaries}/win32/fonts/conf.avail/11-lcdfilter-light.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/20-unhint-small-vera.conf" dest="${project.binaries}/win32/fonts/conf.avail/20-unhint-small-vera.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/25-unhint-nonlatin.conf" dest="${project.binaries}/win32/fonts/conf.avail/25-unhint-nonlatin.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/30-metric-aliases.conf" dest="${project.binaries}/win32/fonts/conf.avail/30-metric-aliases.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/30-urw-aliases.conf" dest="${project.binaries}/win32/fonts/conf.avail/30-urw-aliases.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/40-nonlatin.conf" dest="${project.binaries}/win32/fonts/conf.avail/40-nonlatin.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/45-latin.conf" dest="${project.binaries}/win32/fonts/conf.avail/45-latin.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/49-sansserif.conf" dest="${project.binaries}/win32/fonts/conf.avail/49-sansserif.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/50-user.conf" dest="${project.binaries}/win32/fonts/conf.avail/50-user.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/51-local.conf" dest="${project.binaries}/win32/fonts/conf.avail/51-local.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/60-latin.conf" dest="${project.binaries}/win32/fonts/conf.avail/60-latin.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/65-fonts-persian.conf" dest="${project.binaries}/win32/fonts/conf.avail/65-fonts-persian.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/65-khmer.conf" dest="${project.binaries}/win32/fonts/conf.avail/65-khmer.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/65-nonlatin.conf" dest="${project.binaries}/win32/fonts/conf.avail/65-nonlatin.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/69-unifont.conf" dest="${project.binaries}/win32/fonts/conf.avail/69-unifont.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/70-no-bitmaps.conf" dest="${project.binaries}/win32/fonts/conf.avail/70-no-bitmaps.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/70-yes-bitmaps.conf" dest="${project.binaries}/win32/fonts/conf.avail/70-yes-bitmaps.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/80-delicious.conf" dest="${project.binaries}/win32/fonts/conf.avail/80-delicious.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.avail/90-synthetic.conf" dest="${project.binaries}/win32/fonts/conf.avail/90-synthetic.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.d/20-unhint-small-vera.conf" dest="${project.binaries}/win32/fonts/conf.d/20-unhint-small-vera.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.d/30-metric-aliases.conf" dest="${project.binaries}/win32/fonts/conf.d/30-metric-aliases.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.d/30-urw-aliases.conf" dest="${project.binaries}/win32/fonts/conf.d/30-urw-aliases.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.d/40-nonlatin.conf" dest="${project.binaries}/win32/fonts/conf.d/40-nonlatin.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.d/45-latin.conf" dest="${project.binaries}/win32/fonts/conf.d/45-latin.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.d/49-sansserif.conf" dest="${project.binaries}/win32/fonts/conf.d/49-sansserif.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.d/50-user.conf" dest="${project.binaries}/win32/fonts/conf.d/50-user.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.d/51-local.conf" dest="${project.binaries}/win32/fonts/conf.d/51-local.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.d/60-latin.conf" dest="${project.binaries}/win32/fonts/conf.d/60-latin.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.d/65-fonts-persian.conf" dest="${project.binaries}/win32/fonts/conf.d/65-fonts-persian.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.d/65-nonlatin.conf" dest="${project.binaries}/win32/fonts/conf.d/65-nonlatin.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.d/69-unifont.conf" dest="${project.binaries}/win32/fonts/conf.d/69-unifont.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.d/80-delicious.conf" dest="${project.binaries}/win32/fonts/conf.d/80-delicious.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.d/90-synthetic.conf" dest="${project.binaries}/win32/fonts/conf.d/90-synthetic.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/fonts/conf.d/README" dest="${project.binaries}/win32/fonts/conf.d/README" usetimestamp="true" />
<get src="${project.binaries-base}/win32/mplayer/config" dest="${project.binaries}/win32/mplayer/config" usetimestamp="true" />
<get src="${project.binaries-base}/win32/mplayer/input.conf" dest="${project.binaries}/win32/mplayer/input.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/mplayer/subfont.ttf" dest="${project.binaries}/win32/mplayer/subfont.ttf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/service/wrapper-community-license-1.1.txt" dest="${project.binaries}/win32/service/wrapper-community-license-1.1.txt" usetimestamp="true" />
<get src="${project.binaries-base}/win32/service/wrapper.conf" dest="${project.binaries}/win32/service/wrapper.conf" usetimestamp="true" />
<get src="${project.binaries-base}/win32/service/wrapper.dll" dest="${project.binaries}/win32/service/wrapper.dll" usetimestamp="true" />
<get src="${project.binaries-base}/win32/service/wrapper.exe" dest="${project.binaries}/win32/service/wrapper.exe" usetimestamp="true" />
<get src="${project.binaries-base}/win32/service/wrapper.jar" dest="${project.binaries}/win32/service/wrapper.jar" usetimestamp="true" />
</target>
</configuration>
</execution>
<execution>
<id>prepare-package-windows</id>
<phase>prepare-package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<!-- Copy the pms-x.x.x-jar-with-dependencies.jar to pms.jar -->
<copy file="${project.basedir}/target/${project.artifactId}-${project.version}-jar-with-dependencies.jar"
tofile="${project.basedir}/target/pms.jar" overwrite="true" />
<!-- MediaInfo library needs to be in the standard library path to be found -->
<copy file="${project.binaries}/MediaInfo.dll" todir="${project.basedir}" />
<copy file="${project.binaries}/MediaInfo64.dll" todir="${project.basedir}" />
</target>
</configuration>
</execution>
</executions>
</plugin>
<!--
Plugin to build a Windows installer using the nullsoft scriptable install system (NSIS)
The "generate-project" goal generates a file "target/project.nsh", which contains the
definitions for project variables like "${PROJECT_BASEDIR}" that can be used in the
"pms.nsi" and "setup.nsi" files.
-->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>nsis-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<executions>
<execution>
<id>build-pms-windows</id>
<configuration>
<makensisBin>${project.external-resources}/third-party/nsis/makensis.exe</makensisBin>
<outputFile>${project.build.directory}/PMS.exe</outputFile>
<setupScript>${project.external-resources}/nsis/pms.nsi</setupScript>
</configuration>
<phase>package</phase>
<goals>
<goal>generate-project</goal>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>build-setup-windows</id>
<configuration>
<makensisBin>${project.external-resources}/third-party/nsis/makensis.exe</makensisBin>
<outputFile>${project.build.directory}/PMS-setup.exe</outputFile>
<setupScript>${project.external-resources}/nsis/setup.nsi</setupScript>
</configuration>
<phase>package</phase>
<goals>
<goal>generate-project</goal>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!--
Linux profile: takes care of building the final package for Linux
-->
<profile>
<id>linux</id>
<activation>
<activeByDefault>false</activeByDefault>
<os>
<family>unix</family>
</os>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<executions>
<!-- Assemble a jar with dependencies -->
<execution>
<id>make-jar-with-dependencies-linux</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>${project.basedir}/src/main/assembly/jar-with-dependencies.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>net.pms.PMS</mainClass>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries> <!-- see above for documentation -->
</manifest>
</archive>
</configuration>
</execution>
<!-- Assemble the PMS distribution file. -->
<execution>
<id>build-pms-linux</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>${project.basedir}/src/main/assembly/assembly-linux.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>net.pms.PMS</mainClass>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries> <!-- see above for documentation -->
</manifest>
</archive>
</configuration>
</execution>
</executions>
</plugin>
<!--
Use the antrun plugin to:
download the tsMuxeR binary to ${project.binaries}/tsMuxeR
copy the pms-x.x.x-jar-with-dependencies.jar to pms.jar
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>process-resources-linux</id>
<phase>process-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<!-- Make sure the binaries folder exists -->
<mkdir dir="${project.binaries}" />
<!-- Download binaries -->
<get src="${project.binaries-base}/linux/tsMuxeR" dest="${project.binaries}/tsMuxeR" usetimestamp="true" />
</target>
</configuration>
</execution>
<execution>
<id>copy-jar-with-dependencies-linux</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<copy file="${project.basedir}/target/${project.artifactId}-${project.version}-jar-with-dependencies.jar"
tofile="${project.basedir}/target/pms.jar" overwrite="true" />
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!--
Mac OSX profile: takes care of building the final package for Mac OSX
-->
<profile>
<id>osx</id>
<activation>
<activeByDefault>false</activeByDefault>
<os>
<family>mac</family>
</os>
</activation>
<build>
<plugins>
<!--
Plugin to download binaries before assembly
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>process-resources-osx</id>
<phase>test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<!-- Make sure the binaries folder exists -->
<mkdir dir="${project.binaries}" />
<mkdir dir="${project.binaries}/osx" />
<!-- Download binaries -->
<get src="${project.binaries-base}/osx/dcraw" dest="${project.binaries}/osx/dcraw" usetimestamp="true" />
<get src="${project.binaries-base}/osx/ffmpeg" dest="${project.binaries}/osx/ffmpeg" usetimestamp="true" />
<get src="${project.binaries-base}/osx/flac" dest="${project.binaries}/osx/flac" usetimestamp="true" />
<get src="${project.binaries-base}/osx/libmediainfo.dylib" dest="${project.binaries}/libmediainfo.dylib" usetimestamp="true" />
<get src="${project.binaries-base}/osx/mencoder" dest="${project.binaries}/osx/mencoder" usetimestamp="true" />
<get src="${project.binaries-base}/osx/mplayer" dest="${project.binaries}/osx/mplayer" usetimestamp="true" />
<get src="${project.binaries-base}/osx/tsMuxeR" dest="${project.binaries}/osx/tsMuxeR" usetimestamp="true" />
<!-- MediaInfo library needs to be in the standard library path to be found -->
<copy file="${project.binaries}/libmediainfo.dylib" todir="${project.basedir}" />
<!-- Make all downloaded binaries executable -->
<chmod dir="${project.binaries}/osx" perm="a+x" includes="*" />
<copy file="${project.external-resources}/osx/pms.icns"
todir="${project.binaries}" overwrite="true" />
</target>
</configuration>
</execution>
<execution>
<id>prepare-package-osx</id>
<phase>prepare-package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<!-- Make sure the target folder exists -->
<mkdir dir="${project.build.directory}/${project.build.finalName}-distribution" />
<!-- Create the shortcut to the Applications folder -->
<exec executable="/usr/bin/osascript">
<arg value="-e" />
<arg value="tell application &quot;Finder&quot;" />
<arg value="-e" />
<arg value="set src to POSIX file &quot;/Applications&quot;" />
<arg value="-e" />
<arg value="set dest to POSIX file &quot;${project.build.directory}/${project.build.finalName}-distribution&quot;" />
<arg value="-e" />
<arg value="make new alias file to folder src at folder dest" />
<arg value="-e" />
<arg value="end tell" />
</exec>
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<executions>
<!-- Assemble a jar with dependencies -->
<execution>
<id>make-jar-with-dependencies-osx</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>${project.basedir}/src/main/assembly/jar-with-dependencies.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>net.pms.PMS</mainClass>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries> <!-- see above for documentation -->
</manifest>
</archive>
</configuration>
</execution>
<!--
Assemble the PMS files in the right place before creating
the App Bundle and DMG disk image.
-->
<execution>
<id>make-assembly-osx</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>${project.basedir}/src/main/assembly/assembly-osx.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>net.pms.PMS</mainClass>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries> <!-- see above for documentation -->
</manifest>
</archive>
</configuration>
</execution>
</executions>
</plugin>
<!--
Plugin to create the OSX Application Bundle and DMG disk image. This will
automatically copy all dependencies to a local repository, so the
jar-with-dependencies is not needed here.
-->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>osxappbundle-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>bundle</goal>
</goals>
<configuration>
<mainClass>net.pms.PMS</mainClass>
<buildDirectory>${project.build.directory}/${project.build.finalName}-distribution</buildDirectory>
<diskImageFile>${project.build.directory}/${project.build.finalName}.dmg</diskImageFile>
<zipFile>${project.build.directory}/${project.build.finalName}-app.zip</zipFile>
<javaApplicationStub>/System/Library/Frameworks/JavaVM.framework/Versions/Current/Resources/MacOS/JavaApplicationStub</javaApplicationStub>
<bundleName>${project.name}</bundleName>
<iconFile>${project.basedir}/target/bin/pms.icns</iconFile>
<version>${project.version}</version>
<jvmVersion>1.6+</jvmVersion>
<!-- Options to the JVM, will be used as the value of VMOptions in Info.plist. -->
<vmOptions>-Xmx768M -Xss16M -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -jar</vmOptions>
<dictionaryFile>${project.external-resources}/osx/Info.plist-template.xml</dictionaryFile>
<internetEnable>false</internetEnable>
<additionalClasspath />
<additionalResources />
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!--
This profile allows running PMS from inside Eclipse
(Requires a "mvn clean package" to download the binaries first)
-->
<profile>
<id>run-from-eclipse</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<classpathScope>test</classpathScope>
<mainClass>net.pms.PMS</mainClass>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
Jump to Line
Something went wrong with that request. Please try again.