1

我有一个现有的 maven 项目,通过在 POM 文件中添加依赖项,我开始使用 vaadin。但是,当我将 VAADIN/themes 文件夹放在 src/main/resources 下时,当使用 maven 构建时,它会被复制到 .war 文件中的 WEB-INF/classes 文件夹中,而不是像预期的那样将它放在 war 根目录中成为。我已经尝试了所有明显的组合,如 src/main/webapp/VAADIN 或 src/main/VAADIN 甚至 src/main/webapp/WEB-INF/VAADIN 但它们似乎都不是放置主题和其他 vaadin 的正确位置资源。

我还尝试生成一个 vaadin 项目,如https://vaadin.com/wiki/-/wiki/Main/Using%20Vaadin%20with%20Maven中所述,但没有成功。maven 的行为方式相同。

有谁知道如何在 Maven 项目中正确设置 Vaadin 主题?我正在使用带有 maven 3 的 osx 10.6

任何帮助将非常感激。最好的祝福

4

2 回答 2

3

我不确定 Vaadin,但您可以使用Maven Resources 插件将资源复制到特定位置(您喜欢的任何位置,而不仅仅是目标文件夹)。因此,如果您想将名为 VAADIN 的文件夹从项目的根目录复制到战争的根目录,您可以这样设置:

<plugin>
  <artifactId>maven-resources-plugin</artifactId>
  <version>2.5</version>
  <executions>
    <execution>
      <id>copy-resources</id>
      <phase>validate</phase>
      <goals>
        <goal>copy-resources</goal>
      </goals>
      <configuration>
        <outputDirectory>${basedir}/target/war</outputDirectory>
        <resources>
          <resource>
            <directory>VAADIN</directory>
            <filtering>false</filtering>
          </resource>
        </resources>
      </configuration>
    </execution>
  </executions>
</plugin>

通常,该src/main/resources文件夹用于存放应该位于类路径src/main/webapp中的资源,并且存放应该位于WEB-INFwebapp 文件夹中的资源。我建议将其他资源放在其他地方(也许src/main/vaadin?)。如果你真的想把它放进去src/main/resources并且你使用我刚刚概述的方法,你还需要排除它 Maven 复制那里的其他东西 - 更容易避免它。

于 2012-04-13T12:56:26.090 回答
2

你应该把你放在 src/main/webapp/ 中的所有东西都放在你的战争的根源上,而不需要任何定制。

于 2012-04-13T14:03:56.850 回答