Java WAR将快照jar与时间戳捆绑在一起
我有一个使用Webstart的多模块项目设置,我需要将WAR与快照JAR捆绑在一起。当JAR被捆绑到WAR中时,它们会被附加一个时间戳,而不是实际的名称。这导致下载过程中出现问题Java WAR将快照jar与时间戳捆绑在一起,java,maven,jar,java-web-start,jnlp,Java,Maven,Jar,Java Web Start,Jnlp,我有一个使用Webstart的多模块项目设置,我需要将WAR与快照JAR捆绑在一起。当JAR被捆绑到WAR中时,它们会被附加一个时间戳,而不是实际的名称。这导致下载过程中出现问题 Expected - ABC-1.0-SNAPSHOT.jar Actual - ABC-1.0-20141002.211448-2.jar 环境: 操作系统:Unix 马文:3.2.1 JDK:1.7 我已经尝试了useUniqueVersions=false,通过定义一个maven war插件并在清单配置中设
Expected - ABC-1.0-SNAPSHOT.jar
Actual - ABC-1.0-20141002.211448-2.jar
环境:
操作系统:Unix
马文:3.2.1
JDK:1.7
我已经尝试了useUniqueVersions=false,通过定义一个maven war插件并在清单配置中设置它
我的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>
org.codehaus.mojo
webstart maven插件
1.0-beta-6
过程资源
jnlp下载servlet
.
真的
...
JNLP-INF/APPLICATION_TEMPLATE.JNLP
client.jnlp
...
...
假的
感谢您的任何意见
更新
添加关于我添加的WAR插件的详细信息
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
</plugin>
org.apache.maven.plugins
maven战争插件
2.4
这种行为还在继续。我听说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>
org.apache.maven.plugins
maven战争插件
2.4
${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension}
maven webstart插件的创建者意外地颠倒了标志useUniqueVersions的含义。当设置为true时,它生成形式为-SNAPSHOT.jar的jar,当设置为false(默认值)时,它生成形式为--.jar的jar
我发现在maven pom配置中将useUniqueVersions标志设置为true会产生我想要的结果
我之所以需要它,是因为在尝试启动快照时,当它与快照的日期戳版本一起部署时,当它尝试获取它尝试启动的快照jar时,我得到了一个“Resource not found”(未找到资源)错误。这可能意味着servlet代码本身没有设置为处理磁盘上的不同命名,尽管特定的日期戳版本号最终会出现在jnlp本身中。Hm?您能在创建war文件的地方显示完整的pom文件吗?此外,您使用哪个版本的maven war插件?我的pom中没有对maven war插件的具体定义。我已经将打包定义为WAR,maven应该使用最新版本的WAR插件。。它是2.2版,不是最新版本。此外,您应该始终锁定插件的版本。因此,请使用maven war插件的特定版本2.4检查这种行为。