5

我在一个项目中有以下文件:

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

4

3 回答 3

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 将 my 复制messages.properties到目录target/test-classes中。因此 ShrinkWrap 会在类路径中找到它。

于 2013-09-18T18:10:43.710 回答
2

您可以使用该addAsResource方法添加文件。方法在这里定义:https ://github.com/shrinkwrap/shrinkwrap/blob/master/api/src/main/java/org/jboss/shrinkwrap/api/container/ResourceContainer.java#L86

于 2013-09-02T20:28:16.647 回答
2

在这种情况下,诀窍是将资源添加为文件:

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

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

于 2015-12-07T16:05:40.393 回答