GWT不使用target中的资源属性文件,而是使用src/main/resources中的资源属性文件.如何使它与占位符



我有gwt web项目,必须使用应用程序。属性(在客户端)在代码中作为TextResource加载。一切都很好,但现在我想集中所有的属性值在maven pom.xml。所以我提出了申请。属性与占位符,如key1=${param1},并在pom.xml中配置属性param1Value

所以,maven替换了应用程序中的占位符。属性,但似乎GWT编译器使用该应用程序。属性文件从src/main/resources。我检查了编译的js文件,在那里我可以看到占位符没有被它的值从pom.xml(目标的应用程序)取代。

更新:问题是,我正在过滤的属性文件是一个gwt消息资源包文件,从我看到的情况来看,maven创建了一个"生成"文件夹,并根据根项目源文件夹(而不是目标文件夹)中找到的属性文件放置了一个生成的java文件。之后,它将其合并到javascript通用文件中。这意味着我有两种可能性:1)告诉资源插件覆盖位于源文件夹中的属性文件(我对此并不感冒,因为我肯定会在下一个subversion更新中遇到问题)2)告诉gwt-maven-plugin在目标/类文件夹中查找属性文件,我认为这是不可能的

你觉得怎么样?

我通过使用资源解决了同样的问题:复制资源执行和构建助手插件。特别是,配置资源插件:

  <plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <executions>
      <execution>
        <id>filter-sources</id>
        <goals>
          <goal>copy-resources</goal>
        </goals>
        <phase>generate-sources</phase>
        <configuration>
          <outputDirectory>${project.build.directory}/gwt-extra</outputDirectory>
          <resources>
            <resource>
              <filtering>true</filtering>
              <directory>src/main/filtered-sources</directory>
            </resource>
          </resources>
        </configuration>
      </execution>
    </executions>
  </plugin>

并使用构建帮助器包含它:

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.7</version>
    <executions>
      <execution>
        <id>add-source-gwt</id>
        <phase>generate-sources</phase>
        <goals>
          <goal>add-source</goal>
        </goals>
        <configuration>
          <sources>
            <source>${project.build.directory}/gwt-extra</source>
          </sources>
        </configuration>
      </execution>
    </executions>
  </plugin>

我设法对GWT编译中使用的属性文件使用maven过滤。
我使用的是com.google.gwt.i18n.client。常量接口。

它允许实例化一个扩展常量的接口,方法返回属性文件中的值。
这个属性文件可以通过maven过滤来处理。

这很容易做到:

  • 声明一个扩展常量的接口:XxConstants
  • 创建属性文件XxConstants。src/main/resource中的属性与你的接口在同一个包中
  • 激活maven资源过滤所以xx常量。属性被过滤
  • 当GWT正在编译时(使用GWT -maven-plugin),它将使用过滤的属性文件生成一个XxConstants的实例。在gwt代码的
  • 中,用gwt创建一个XxConstants实例。create or with gin injection
  • 调用方法获取属性值

一个警告:过滤在gwt dev模式下不工作

结果可以在目标中检查。生成的文件夹,其中包含使用过滤属性的接口的Java实现。

相关内容

  • 没有找到相关文章

最新更新