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 に答える