私は maven-webstart-plugin を使用して、2 つの実行として構成された 2 つの JNLP (jnlpA と jnlpB) を生成しています。プロジェクトには、2 つの依存関係があります。
- dependencyA.jar (一部のコモンズと、A1.jar、A2.jar、A3.jar などのコモンズに依存するもの...)
- dependencyB.jar (B1.jar、B2.jar、B3.jar などのいくつかのコモンズとその他のコモンズに依存します)。
jnlpA が依存関係として dependencyA.jar、commons と A1.jar、A2.jar、A3.jar... を持っている必要があります。 maven-webstart-plugin でこれを行う方法がわかりません。
私はこれを試しました:
「excludeTransitive」というプラグイン プロパティを false (デフォルト) に使用します。この場合、両方の JNLP にすべての依存関係があります。
「excludeTransitive」を true に変更します。この場合、両方の JNLP は依存関係として依存関係 A.jar と依存関係 B.jar のみを持ちます。
「excludeTransitive」を false (デフォルト) にすると、各実行でプラグインが使用できるようにするオプション exclude と include を使用します。
- jnlpA の実行で exclude を使用し、dependencyB.jar を除外すると、jnlpA は依然 B1.jar、B2.jar として依存関係を持ちます... IE は依存関係のみを除外し、そのすべての推移的な依存関係は除外しません。
- jnlpA の実行で include を使用し、dependencyA.jar をインクルードすると、A1.jar、A2.jar... はインクルードされません。IE にはこの依存関係のみが含まれ、すべての推移的な依存関係は含まれません。
したがって、私の問題は、実行に依存関係を含めるか除外する必要があることですが、そのすべての推移的な依存関係があります。
オプション 3 を試していたときのポンポンの例は次のとおりです。
<?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>
<artifactId>MyJnlp</artifactId>
<packaging>pom</packaging>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>webstart-maven-plugin</artifactId>
<version>1.0-beta-3</version>
<executions>
<execution>
<id>install-jnlp</id>
<phase>process-resources</phase>
<goals>
<goal>jnlp-inline</goal>
</goals>
<configuration>
<workDirectory>target/dist</workDirectory>
<jnlp>
<inputTemplate>src/main/jnlp/jnlpA-template.vm</inputTemplate>
<outputFile>jnlpA.jnlp</outputFile>
<mainClass>Start</mainClass>
</jnlp>
<dependencies>
<excludes>
<exclude>xxx:dependencyB</exclude>
</excludes>
</dependencies>
</configuration>
</execution>
<execution>
<id>uninstall-jnlp</id>
<phase>process-resources</phase>
<goals>
<goal>jnlp-inline</goal>
</goals>
<configuration>
<workDirectory>target/dist</workDirectory>
<jnlp>
<inputTemplate>src/main/jnlp/jnlpB-template.vm</inputTemplate>
<outputFile>jnlpB.jnlp</outputFile>
<mainClass>Uninstaller</mainClass>
</jnlp>
<dependencies>
<excludes>
<exclude>xxx:dependencyA</exclude>
</excludes>
</dependencies>
</configuration>
</execution>
</executions>
<configuration>
<excludeTransitive>false</excludeTransitive><resourcesDirectory>${project.basedir}/src/main/jnlp/resources</resourcesDirectory>
<jnlp>
<inputTemplateResourcePath>${project.basedir}</inputTemplateResourcePath>
</jnlp>
<gzip>true</gzip>
<makeArchive>false</makeArchive>
<outputJarVersions>false</outputJarVersions>
<verbose>true</verbose>
<encoding>ISO-8859-1</encoding>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>xxx</groupId>
<artifactId>dependencyA</artifactId>
<version>1.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>xxx</groupId>
<artifactId>dependencyB</artifactId>
<version>1.0</version>
<scope>runtime</scope>
</dependency>
</dependencies>