使用Arquillian / ShrinkWrap进行Maven资源过滤

时间:2013-05-07 07:30:15

标签: java maven jboss-arquillian shrinkwrap

如何构建将执行Maven资源过滤的Arquillian ShrinkWrap部署? 我应该使用哪个版本的ShrinkWrap?

3 个答案:

答案 0 :(得分:1)

根据ShrinkWrap开发人员https://community.jboss.org/message/781880#781880提供的信息,这尚未实施。

此功能的票证https://issues.jboss.org/browse/SHRINKRES-100

答案 1 :(得分:0)

编辑:看到我的另一个答案,这实际上已经实现并且易于使用; - )

Grzegorz是正确的,这不是在Arquillian中实现的。

作为一种解决方法,我最终在@Deployment中使用了这个:

Properties testProperties = new Properties();
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
InputStream testPropertiesInputStream = contextClassLoader.getResourceAsStream("test.properties");
testProperties.load(testPropertiesInputStream);

File testPropertiesTargetFile = File.createTempFile("arquillian_test_", ".properties");
try (Writer testPropertiesWriter = Files.newBufferedWriter(testPropertiesTargetFile.toPath())) {
    testProperties.store(testPropertiesWriter, null);
}
webArchive.addAsResource(testPropertiesTargetFile, "test.properties");

这是@Setup:

private Properties testProperties;

@Before
public void setUp() throws IOException {
    testProperties = new Properties();
    InputStream testPropertiesInputStream = this.getClass().getResourceAsStream("/test.properties");
    testProperties.load(testPropertiesInputStream);
}

<击>

答案 2 :(得分:0)

在尝试“修复”之后,事实证明答案非常简单......

    webArchive.addAsResource("test.properties");

...将使用maven已经过滤的类路径资源。