Mise à jour: Voici comment filtrer un chemin de classe dans un manifeste personnalisé.
Le maven-dépendance-plugin build-classpath
objectif peut être configuré pour émettre le chemin d'un fichier dans les propriétés de format (c'est à dire classpath=[classpath]). Vous pouvez ensuite configurer les filtres élément à utiliser généré le classpath de fichier, et de configurer le répertoire de ressources pour être filtré.
Par exemple:
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>build-classpath</goal>
</goals>
</execution>
</executions>
<configuration>
<outputFilterFile>true</outputFilterFile>
<outputFile>${project.build.directory}/classpath.properties</outputFile>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>
${project.build.outputDirectory}/META-INF/MANIFEST.MF
</manifestFile>
</archive>
</configuration>
</plugin>
</plugins>
<filters>
<filter>${project.build.directory}/classpath.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
Ensuite, spécifiez les éléments suivants dans src/main/resources/META-INF/Manifest.MF:
Bundle-Version: 4.0.0
...
Classpath: ${classpath};[specify additional entries here]
Remarque: il y a un bug avec ce traitement à l'aide de la fenêtre standard séparateur de chemin d'accès (\
), l'générer chemin est dépouillé de séparateurs (remarque, il fonctionne très bien sur Linux). Vous pouvez obtenir le classpath pour être correctement généré pour Windows, en spécifiant <fileSeparator>\\\\</fileSeparator>
dans la build-classpath
de l'objectif de configuration.
Vous pouvez personnaliser le manifeste du jar-plugin's de configuration. Pour ce faire, vous devez ajouter quelque chose comme ceci à votre pom.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
...
<configuration>
<archive>
<index>true</index>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
<manifestEntries>
<mode>development</mode>
<url>${pom.url}</url>
<key>value</key>
</manifestEntries>
</archive>
</configuration>
...
</plugin>
La pleine archiveur spécification fournit quelques options. Voir la page des exemples pour les options à configurer le classpath.
Si aucun de ces travaux pour vous, vous pouvez définir votre propre Manifeste, définir les propriétés contenant les entrées nécessaires et l'utilisation d'un filtre pour remplir le manifeste avec ces propriétés