2

私は 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 でこれを行う方法がわかりません。

私はこれを試しました:

  1. 「excludeTransitive」というプラグイン プロパティを false (デフォルト) に使用します。この場合、両方の JNLP にすべての依存関係があります。

  2. 「excludeTransitive」を true に変更します。この場合、両方の JNLP は依存関係として依存関係 A.jar と依存関係 B.jar のみを持ちます。

  3. 「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>

4

0 に答える 0