2014-10-06 30 views
2

我有这个使用Webstart的多模块项目设置,我需要将WAR与SNAPSHOT JAR捆绑在一起。当JAR捆绑到WAR中时,它们会附加一个时间戳而不是实际的名称。这是在下载过程中造成的问题。WAR包捆绑有时间戳的SNAPSHOT JARs

Expected - ABC-1.0-SNAPSHOT.jar 
Actual - ABC-1.0-20141002.211448-2.jar 

ENV:

操作系统:Unix的 的Maven:3.2.1 JDK 1.7

我已经尝试useUniqueVersions =假通过定义Maven的战争插件,设置这个在清单配置中。

我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> 

欣赏任何投入。

UPDATE 关于战争的插件添加细节我加

  <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

嗯..你写maven-war-plugin是问题,但是你显示webstart-maven-plugin的配置?你能在你创建战争文件的地方显示完整的pom文件吗?此外,你使用哪个版本的maven-war-plugin? – khmarbaise 2014-10-07 18:10:01

+0

我的pom中没有关于maven war插件的具体定义。我已经将包装定义为WAR,maven应该使用最新版本的war插件。 – Srini 2014-10-07 18:21:19

+0

[这不是最新的](http://maven.apache.org/ref/3.2.1/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging)。它是版本2.2,它不是**最新版本。此外,你应该一直钉住插件的版本。所以请用maven-war-plugin的特定版本2.4来检查这个行为。 – khmarbaise 2014-10-07 18:46:27

回答

0

以下的行家,在webstart-插件的创建者不小心倒旗useUniqueVersions的意义。当设置为true时,它会生成形如-SNAPSHOT.jar的罐子,当设置为false(默认)时,它将生成罐子形式 - jar

我发现在maven pom中将useUniqueVersions标志设置为true配置产生了我期望的结果。

我需要这样,因为当试图启动它时与快照的日期戳版本一起部署时,我试图获取它试图启动的快照jar时出现“资源未找到”错误。据推测,这意味着servlet代码本身没有设置为处理磁盘上的不同命名,尽管具体的日期戳版本号确实在jnlp本身结束。

相关问题