我有这个使用Webstart的多模块项目设置,我需要将WAR与SNAPSHOT JAR捆绑在一起。当JAR捆绑到WAR中时,它们会附加时间戳而不是实际名称。这导致下载过程中出现问题。
Expected - ABC-1.0-SNAPSHOT.jar
Actual - ABC-1.0-20141002.211448-2.jar
环境:
操作系统:Unix Maven:3.2.1 JDK:1.7
我已经通过定义maven-war-plugin并在清单配置中设置它来尝试 useUniqueVersions = false 。
我的webstart配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>webstart-maven-plugin</artifactId>
<version>1.0-beta-6</version>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>jnlp-download-servlet</goal>
</goals>
</execution>
</executions>
<configuration>
<outputDirectoryName>.</outputDirectoryName>
<excludeTransitive>true</excludeTransitive>
<commonJarResources>
<jarResource>
...
</jarResource>
</commonJarResources>
<jnlpFiles>
<jnlpFile>
<templateFilename>JNLP-INF/APPLICATION_TEMPLATE.JNLP</templateFilename>
<outputFilename>client.jnlp</outputFilename>
<jarResources>
<jarResource>
...
</jarResource>
</jarResources>
</jnlpFile>
</jnlpFiles>
<sign>
...
</sign>
<outputJarVersions>false</outputJarVersions>
</configuration>
感谢任何输入。
更新 添加有关我添加的WAR插件的详细信息
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
</plugin>
行为仍在继续。我读到maven 3使用了一个独特的快照系统。但我正在努力解决它。
还试了以下没有运气
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<outputFileNameMapping>${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension}</outputFileNameMapping>
</configuration>
</plugin>
答案 0 :(得分:0)
maven-webstart-plugin的创建者不小心颠倒了标志useUniqueVersions的含义。当设置为true时,它会生成-SNAPSHOT.jar形式的jar,当设置为false(默认值)时,它会生成表单的jar - .jar
我发现在maven pom配置中将useUniqueVersions标志设置为true会产生我想要的结果。
我需要这样,因为在尝试启动快照时使用快照的日期戳版本进行部署时,我得到了一个&#34;未找到资源&#34;当它试图获取它试图启动的快照jar时出错。据推测,这意味着servlet代码本身并未设置为处理磁盘上的不同命名,尽管特定的日期戳版本号确实最终出现在jnlp本身。