2

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

4

3 回答 3

1

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

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

于 2013-05-09T07:19:47.570 回答
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);
}

于 2015-05-07T07:22:54.733 回答
0

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

    webArchive.addAsResource("test.properties");

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

于 2015-05-07T08:04:01.790 回答