J'ai un terrible travail. J'ai la configuration Maven suivante:
<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>
<artifactId>Test2Certificate</artifactId>
<version>0.1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>com.test</groupId>
<artifactId>build</artifactId>
<version>1.0.0</version>
</parent>
<properties>
<compile.Java.version>1.7</compile.Java.version>
<file.product.version>0.1.0.0</file.product.version>
<maven.build.timestamp.format>yyyy-MM-dd HH:mm:SSS</maven.build.timestamp.format>
</properties>
<pluginRepositories>
<pluginRepository>
<id>launch4j-xml-plugin-repo</id>
<name>launch4j-xml-plugin Repository for Maven</name>
<url>https://launch4j-xml-plugin.googlecode.com/svn/repo</url>
</pluginRepository>
</pluginRepositories>
<build>
<finalName>${project.artifactId}_${project.version}</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target</outputDirectory>
<includeEmptyDirs>true</includeEmptyDirs>
<resources>
<resource>
<targetPath>${basedir}/target/customize</targetPath>
<directory>customize</directory>
<filtering>false</filtering>
</resource>
<resource>
<targetPath>${basedir}/target/resources</targetPath>
<directory>resources</directory>
<filtering>false</filtering>
</resource>
<resource>
<targetPath>${basedir}/target/xml</targetPath>
<directory>xml</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-Assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifest>
<mainClass>com.dscsag.dsct2c.main.MainClass</mainClass>
</manifest>
<manifestEntries>
<SplashScreen-Image>com/dscsag/dsct2c/resources/icons/loader/splash_screen.png</SplashScreen-Image>
<SCM-Revision>${buildNumber}</SCM-Revision>
<Project-Version>${project.version}</Project-Version>
<Build-Date>${maven.build.timestamp}</Build-Date>
<Project-Name>${project.artifactId}_${project.version}</Project-Name>
</manifestEntries>
</archive>
</configuration>
<executions>
<execution>
<id>make-Assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-jarsigner-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>sign</id>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
<configuration>
<keystore>src/main/resources/jarsigner/keystore/dsct2c.keystore</keystore>
<alias>dsct2c</alias>
<storepass>DSCTest2Certificate</storepass>
<keypass>DSCTest2Certificate</keypass>
</configuration>
</plugin>
<plugin>
<groupId>org.bluestemsoftware.open.maven.plugin</groupId>
<artifactId>launch4j-plugin</artifactId>
<version>1.5.0.0</version>
<executions>
<execution>
<id>l4j-gui</id>
<phase>package</phase>
<goals>
<goal>launch4j</goal>
</goals>
<configuration>
<headerType>gui</headerType>
<outfile>target/${project.artifactId}_${project.version}.exe</outfile>
<jar>target/${project.artifactId}_${project.version}.jar</jar>
<errTitle>${project.artifactId} ${project.version} - Error</errTitle>
<icon>src/main/Java/com/dscsag/dsct2c/resources/icons/DSCT2C.ico</icon>
<jre>
<path>jre7</path>
<minVersion>1.7.0_17</minVersion>
<initialHeapSize>128</initialHeapSize>
<maxHeapSize>512</maxHeapSize>
</jre>
<versionInfo>
<fileVersion>1.0.0.0</fileVersion>
<txtFileVersion>1.0</txtFileVersion>
<fileDescription>Tool to certificate third-party products/adaptor.</fileDescription>
<copyright>DSC Software AG</copyright>
<productVersion>${file.product.version}</productVersion>
<txtProductVersion>${file.product.version}</txtProductVersion>
<productName>${project.artifactId}</productName>
<internalName>${project.artifactId}</internalName>
<originalFilename>${project.artifactId}_${project.version}.exe</originalFilename>
</versionInfo>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>org.Apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.4.2</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.swinglabs.swingx</groupId>
<artifactId>swingx-all</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>com.toedter</groupId>
<artifactId>jcalendar</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.jgoodies</groupId>
<artifactId>jgoodies-common</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>com.jgoodies</groupId>
<artifactId>jgoodies-looks</artifactId>
<version>2.5.2</version>
</dependency>
<dependency>
<groupId>dsct2c.help</groupId>
<artifactId>pdf_render</artifactId>
<version>0.9.1</version>
</dependency>
<dependency>
<groupId>dsct2c.help</groupId>
<artifactId>jh</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>dsct2c.help</groupId>
<artifactId>hsviewer</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>dsct2c.help</groupId>
<artifactId>dsct2c_help</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.3</version>
</dependency>
</dependencies>
</project>
Cela crée mon fichier JAR contenant toutes les classes, mais j'ai quelques ressources dans le chemin de classe qui devraient également être incluses. Si je laisse le paramètre clean
devant la phase package
, toutes mes ressources sont incluses. Si je lance maven avec mvn clean package
, aucune ressource n'est incluse. Mes ressources sont sous src/main/Java/com/test/
(pas le répertoire habituel).
Les répertoires source des ressources ne sont pas définis correctement dans la configuration de l'objectif copy-resources
. De plus, l'élément outputDirectory place les ressources dans le répertoire target
, lorsque target/classes
Est ce qui est empaqueté par défaut. Essayez cette configuration:
<configuration>
<outputDirectory>${basedir}/target/classes</outputDirectory>
<includeEmptyDirs>true</includeEmptyDirs>
<resources>
<resource>
<directory>${basedir}/src/main/Java/com/test/customize</directory>
<filtering>false</filtering>
</resource>
<resource>
<directory>${basedir}/src/main/Java/com/test/resources</directory>
<filtering>false</filtering>
</resource>
<resource>
<directory>${basedir}/src/main/Java/com/test/xml</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
Cela dit, vous pourriez envisager de mettre les ressources dans ${basedir}/src/main/resources
, Comme ceci:
src
main
resources
customize
resources
xml
Ensuite, vous pouvez supprimer complètement la configuration supplémentaire maven-resources-plugin
, Le cycle de vie par défaut traitera les ressources correctement.