2017-08-25 149 views
2

我最近開始嘗試將應用程序轉換爲使用wildfly swarm,我在Windows上使用maven,並使用wildfly swarm maven插件來:創建超級jar,啓動它進行集成測試,並在構建結束時停止。蜻蜓蟲羣+填充臨時目錄的Maven

下面是來自POM片段:

<plugin> 
    <groupId>org.wildfly.swarm</groupId> 
    <artifactId>wildfly-swarm-plugin</artifactId> 
    <version>${version.wildfly.swarm}</version> 
    <configuration> 
     <useUberJar>true</useUberJar> 
     <debug>8000</debug> 
    </configuration> 
    <executions> 
     <execution> 
      <id>swarm-package</id> 
      <phase>package</phase> 
      <goals> 
       <goal>package</goal> 
      </goals> 
     </execution> 
     <execution> 
      <id>swarm-start</id> 
      <phase>pre-integration-test</phase> 
      <goals> 
       <goal>start</goal> 
      </goals> 
     </execution> 
     <execution> 
      <id>swarm-stop</id> 
      <phase>post-integration-test</phase> 
      <goals> 
       <goal>stop</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

我還使用mvn wildfly-swarm:run從命令行啓動應用程序,所以我可以做一些手工測試Maven構建之外。

每次運行構建時,C:\Users\myusername\AppData\Local\Temp都會填滿大量未被拆除的數據。我不得不手動清理我的臨時目錄,因爲它佔用了我所有的磁盤空間。

有什麼,我失蹤?是否可以將所有這些臨時數據放入項目target目錄中,以便使用mvn clean來處理?

+0

什麼是你的'version.wildfly.swarm'? – nullpointer

+0

我使用'2017.8.1' –

回答

1

類似的問題已報告在論壇here

針對您的情況,具體而言,問題可能是由羣集進程啓動和停止時的手動干預造成的。

從鏈接源:

現在,我能想到的唯一的事情是,由於某種原因,JVM 正在退出在不潔的方式,這就是爲什麼刪除勾手不 執行。

您可能需要使用

mvn wildfly-swarm:start 

執行和測試,一旦完成測試

mvn wildfly-swarm:stop 

須確保適當的清理。

注意:這將不同於packageinstall命令,並且不會遵循您另行指定的插件執行。

+0

我以前曾嘗試在命令行中使用'mvn wildfly-swarm:stop',但它不被支持,它會產生錯誤'wildfly-swarm:stop is not available from這就是爲什麼我在POM中添加執行的原因。 –

+0

@MartinCassidy由於某種原因,這似乎是故意的。 [實施](https://github.com/wildfly-swarm-archive/wildfly-swarm/blob/master/plugin/src/main/java/org/wildfly/swarm/plugin/maven/StopMojo.java)和[確認](https://groups.google.com/d/msg/wildfly-swarm/WQrbqf_oYCI/dVnM874aAQAJ)鏈接到它。 – nullpointer

+1

我懷疑這是出於實際的原因,它需要成爲啓動swarm的maven過程的一部分,以便stop命令知道哪個進程實際停止。我實際上已經嘗試了'java -jar'選項,它產生了同樣的問題。我爲它提出了一張票https://issues.jboss.org/browse/SWARM-1530與此同時,我在maven swarm插件配置中添加了'-Djava.io.tmpdir'作爲'jvmArgument' ,將其設置爲我的'/ target'目錄,以便'mvn clean'現在正在處理事情。 –