4

ルートpom.xmlファイルにgecko1_8というプロパティがあります。これをgwt.xmlファイルに配置したいと思います。

だから私はこのプロパティをgwt.xmlに置きました:

ビルドセクションに以下を追加しました。

<resources>
  <resource>
  <directory>src/main/resources</directory>
  <filtering>true</filtering>
    <excludes>
      <exclude>VAADIN.themes/*</exclude>
    </excludes>
  </resource>
</resources>

しかし、最後にビルドはエラーで失敗しました:

エラー:無効なプロパティ値'${gwt.user.agents}'

エラー:XMLの解析中に失敗しました

プロパティを介してpom.xmlからgwt.xmlファイルに値を配置する方法は?

更新しました

面白いこと。「mvnresources:resources」を使用すると、プロパティの値がgwt.xmlファイルに正しく書き込まれますが、「mvn clean install -pl com.myproject.module:submodule」を実行すると、「invalidpropertyvalue」で失敗します。

4

2 に答える 2

3

次のように、pomでMavenプロファイルを定義する必要があります(ケースごとに特定のプロファイルを定義することをお勧めします)。

    <profile>
        <id>gecko</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <properties>
            <user.agent.gecko>
                <![CDATA[<set-property name="user.agent" value="gecko,gecko1_8" />]]>
            </user.agent.gecko>
        </properties>
        <build>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*YourGWTModule.gwt.xml</include>
                    </includes>
                    <filtering>true</filtering>
                </resource>
            </resources>
            <defaultGoal>process-resources</defaultGoal>
        </build>
    </profile>

<properties>
    <!--<user.agent>ie6,ie8,gecko,gecko1_8,opera,safari</user.agent>-->
    <user.agent.all> </user.agent.all>
    <user.agent.ie6> </user.agent.ie6>
    <user.agent.ie8> </user.agent.ie8>
    <user.agent.gecko> </user.agent.gecko>
    <user.agent.opera> </user.agent.opera>
    <user.agent.safari> </user.agent.safari>
</properties>

次に、次のYourGWTModule.gwt.xmlように設定します。

<set-property name="locale" value="default" />
<!-- Specified through pom.xml profiles -->
${user.agent.all}
${user.agent.ie6}
${user.agent.ie8}
${user.agent.gecko}
${user.agent.safari}
${user.agent.opera}

</module>

最後に、プロファイルを使用してMavenを実行します。

mvn -P gecko install
于 2013-01-23T17:57:34.587 に答える
0

私が言及しなかったことが1つありますが、それはあまりにも重要であるように見えました。ビルド中に使用されるプラグインには、独自の目標があります。そして、これらの目標の1つは、maven-resource-pluginが行ったことを「やり直す」ことができます。

だから私はプラグインvaadin-maven-pluginを持っていました:

<plugin>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-maven-plugin</artifactId>
<version>${vaadin.plugin.version}</version>
<configuration>
    ...
</configuration>
<executions>
    <execution>
        <goals>
            <goal>resources</goal>
            <goal>compile</goal>
        </goals>
    </execution>
</executions>
</plugin>

そして、削除すると<goal>resources</goal>問題が修正されました。そして今mvn clean install、私のgwt.xmlのプロパティを正しくフィルタリングします。

この解決策がそのような問題で実行する人々を助けることを願っています。

于 2013-07-02T14:05:47.610 に答える