JBoss ShrinkWrap

IAm*_*aja 1 java jboss integration-testing shrinkwrap jboss-arquillian

在观看JBoss的Arquillian上的一些视频教程时,我偶然发现了他们的另一个名为ShrinkWrap的项目(因为Arquillian使用它).

在他们的项目页面上花了一些时间之后,我似乎无法找到几个问题的具体答案,而且它似乎是一个非常新的(不成熟的)项目,它背后没有一个大的开发社区.特别:

  • ShrinkWrap的目的是创建内存中的JAR,WAR和EAR吗?如果是这样,我为什么要这样做呢?如果没有,ShrinkWrap的目的是什么,它解决了什么问题?
  • ShrinkWrap是否触摸文件系统(JAR实际上是在磁盘上创建的,还是真正100%在内存中)?如果没有,那么内存存档的价值是什么?

提前致谢!

小智 7

传统的构建过程涉及将字节写入磁盘,然后由应用程序服务器将其读入内存.如果您想要的只是将您选择的应用程序服务器交给您的部署工件,那么这是一个不必要的步骤.应用程序服务器将工件视为字节流,如果从磁盘或内存提供字节,则无关紧要.使用ShrinkWrap,您可以以编程方式构建工件,因此无需涉及单独的构建过程.

除非您愿意,ShrinkWrap不会触及文件系统.如果您愿意,ShrinkWrap可以使用以下代码轻松地在磁盘上生成物理存档:

WebArchive war = getArtifact();
war.as(ZipExporter.class).exportTo(new File("/tmp/myartifact.war"));
Run Code Online (Sandbox Code Playgroud)

您也可以执行相反的操作,将物理存档从磁盘导入内存.

Arquillian使用ShrinkWrap,但ShrinkWrap本身绝对不限于该用例,当然可以随意使用,无论你喜欢什么.它可以用于例如VFS任务,甚至可以连接到现有的构建过程(如http://blog.diabol.se/?p=122所示).