2017-08-25 147 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'现在正在处理事情。 –