如何将'main / src /.../ messages.properties'文件添加到ShrinkWrap WebArchive?

时间:2013-09-02 16:23:37

标签: java jboss-arquillian shrinkwrap

我在项目中有以下文件:

com/example/module/Messages.java
com/example/module/messages.properties

使用ShrinkWrap.create(WebArchive.class, "test.war").addPackages(true, "com.example.module")只会将Messages.java添加到生成的存档中。如何添加messages.properties

感谢。

修改

我现在正在使用addAsResource,但它仅适用于test/resources文件夹下的文件。如何使其与main/src下的文件一起使用?是否有任何maven配置?

目标是不重复文件。现在我在main/src下有一个文件,在test\resources下有一个副本。

3 个答案:

答案 0 :(得分:7)

我最后将此配置添加到我的POM中:

<build>
  <testResources>
    <testResource>
      <directory>${basedir}/src/main/java/</directory>
      <includes>
        <include>**/*.properties</include>
      </includes>
      <excludes>
        <exclude>**/*.java</exclude>
      </excludes>
    </testResource>
    <testResource>
      <directory>${basedir}/src/test/resources/</directory>
    </testResource>
  </testResources>
</build>

然后我添加了属性文件:

.addAsResource("com/example/module/messages.properties")

现在Maven将我的messages.properties复制到目录target/test-classes。因此,ShrinkWrap会在类路径中找到它。

答案 1 :(得分:2)

答案 2 :(得分:1)

这种情况下的技巧是将资源添加为文件:

addAsResource(new File("src/main/foobar.properties"), "foobar.properties"))

否则它必须存在于类路径中 - 请参阅org.jboss.shrinkwrap.impl.base.container.ContainerBase.fileFromResource(String resourceName)