with run plugin org how groupid example dependency java maven resources maven-assembly-plugin

java - run - Maven: Incluir recursos en JAR



maven-dependency-plugin (1)

Los directorios de origen para los recursos no están definidos correctamente en la configuración del objetivo de copy-resources . Además, el elemento outputDirectory coloca los recursos en el directorio de target , cuando target/classes es lo que se empaqueta de forma predeterminada. Prueba esta configuración:

<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>

Dicho esto, podría considerar poner los recursos en ${basedir}/src/main/resources , de esta forma:

src main resources customize resources xml

Luego, podría eliminar la configuración adicional maven-resources-plugin completo, el ciclo de vida predeterminado procesará los recursos correctamente.

Tengo un castigo terrible. Tengo la siguiente configuración de Maven:

<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>

Esto crea mi archivo JAR que contiene todas las clases, pero tengo algunos recursos en la ruta de clases que también deberían incluirse. Si dejo el parámetro clean delante del package fase, se incluyen todos mis recursos. Si ejecuto maven con mvn clean package , no se incluyen recursos. Mis recursos están bajo src/main/java/com/test/ (no es el directorio habitual).