【发布时间】:2014-11-30 20:46:30
【问题描述】:
我有这个使用 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>
【问题讨论】:
-
嗯..你写 maven-war-plugin 是问题,但你显示 webstart-maven-plugin 的配置?你能在你创建你的war文件的地方显示完整的pom文件吗?此外,您使用哪个版本的 maven-war-plugin?
-
我的 pom.xml 中没有 maven war 插件的具体定义。我已经将打包定义为WAR,maven应该使用最新版本的war插件。
-
It is not the latest。它是 2.2 版,不是最新版本。此外,您应该始终固定插件的版本。因此,请使用 maven-war-plugin 的特定版本 2.4 检查此行为。
标签: java maven jar java-web-start jnlp