2014-10-06 29 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本身結束。