バージョン ダウンロード プロトコルの記事では、リソースが最新であることの確認を高速化する方法について説明しています。便利かもしれませんが、同じファイルの再ダウンロードを防止する部分ではありません。
Webstart-maven-plugin は、jar のバージョン管理を行うことができ、バージョン プロトコルも使用することを宣言します。http://www.mojohaus.org/webstart/webstart-maven-plugin/jnlp-mojo.html#outputJarVersionsを参照してください。
私の個人的な経験は、ドキュメントが言うこととは異なります。jnlp.versionEnabled
結果のjnlpにjarのバージョン属性を追加し、バージョンダウンロードプロトコルに必要と思われるプロパティを設定しません。いずれにせよ、JWS は期待どおりに機能します。バージョンが変更されていない場合、ファイルは再ダウンロードされません。
プラグインのセットアップ:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>webstart-maven-plugin</artifactId>
<version>1.0-beta-6</version>
<dependencies>
<!--This dependency definition resolves class loading issue on Java 8 -->
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>keytool-api-1.7</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>jnlp-download-servlet</goal>
</goals>
</execution>
</executions>
<configuration>
<outputDirectoryName>/</outputDirectoryName>
<libPath/>
<sign>
<keystore>${basedir}/foo-key-store.jks</keystore>
<storepass>password</storepass>
<alias>foo-self-signed</alias>
<verify>true</verify>
</sign>
<unsign>true</unsign>
<jnlpFiles>
<jnlpFile>
<inputTemplate>template.vm</inputTemplate>
<outputFilename>foo.jnlp</outputFilename>
<jarResources>
<jarResource>
<groupId>foo.bar</groupId>
<artifactId>foo</artifactId>
<version>${project.version}</version>
<mainClass>foo.bar.Foo</mainClass>
<outputJarVersion>false</outputJarVersion>
</jarResource>
</jarResources>
</jnlpFile>
</jnlpFiles>
<gzip>true</gzip>
</configuration>
</plugin>
依存関係のバージョン属性を示す、生成された foo.jnlp からの抜粋:
<jar href="commons-collections.jar" version="3.2.1"/>
また、参照するファイルの名前は次のとおりです。
commons-collections-3.2.1.jar