2009-06-07 9 views
9

Bei der Entwicklung habe ich die Eigenschaft user.agent auf einen einzigen Wert gesetzt, um die Kompilierzeiten niedrig zu halten. Bei der Veröffentlichung habe ich eine WAR-Datei für alle Benutzeragenten erstellt.Ändern von GWT's user.agent beim Freigeben

scheine ich leider vergessen zu halten eine Immobilie zu wechseln, entweder:

  • für compiles Warte Entwicklung Zeit zu verschwenden, oder
  • eine WAR-Datei mit unvollständiger Browser-Unterstützung (noch nicht im Einsatz, zum Glück) vorbereitet.

Ich möchte dies automatisieren, vorzugsweise mit dem maven-release-plugin.

+0

Ist Ihre Website öffentlich zugänglich? Woher? –

+0

Ich möchte es auch für Ant sehen. – Glenn

+0

@Don Branson: Nein, die Seite ist nicht öffentlich. –

Antwort

7

Sie möchten 2 verschiedene .gwt.xml-Dateien haben - eine für die Entwicklung und eine für die Produktion.

Es gibt ein gutes Beispiel für den Abschnitt "Umbenennen von Modulen" unter Developer Guide/Organizing projects.

Die für die Entwicklung verwendete Datei gwt.xml erbt von der für die Produktion verwendeten Datei gwt.xml und legt auch die Eigenschaft user.agent fest. z.B .:

<module rename-to="com.foo.MyModule"> 
    <inherits name="com.foo.MyModule" /> 
    <set-property name="user.agent" value="ie6" /> 
</module> 

Nun, wenn die Entwicklung zu tun, würden Sie die Entwicklung gwt.xml-Datei verwenden und wenn eine Produktion aufbauen zu tun. Sie würden die Produktionsdatei gwt.xml verwenden.


Der einfachste Weg, dies mit Maven zu erreichen, ist die Aktivierung des Entwicklungsmoduls über ein Profil. Ich habe ausführlich darüber unter Maven Recipe : GWT development profile geschrieben.

+0

Danke für die Antwort. Ich habe es versucht (mit GWT 1.5) und die Kompilierung funktioniert wie erwartet. Der einzige Roadblock ist, dass meine Application.html immer noch auf Application.nocache.js verweist, anstatt auf ApplicationFirefox.nocache.js. Referenz: http://code.google.com/docreader/#p=google-web-toolkit-doc-1-5&s=google-web-toolkit-doc-1-5&t=FAQ_CompileOnePermutation –

+0

Verwendet die gwt.xml für der firefox build start mit ? – Chi

+0

du bist richtig, das das 'rename-to' fehlt.Ich werde die Antwort mit den Maven-Einstellungen aktualisieren, die ich auch verwendet habe. –

2

Erstellen Sie ein MavenFilteredUserAgent-Modul, das user.agent aus verschiedenen Profilen in der pom.xml setzt.

MavenFilteredUserAgent.gwt.xml

... 
<set-property name="user.agent" value="${gwt.compile.user.agent}" /> 
... 

pom.xml

... 
<properties> 
    <!-- By default we still want all five rendering engines when none of the following profiles is explicitly specified --> 
    <gwt.compile.user.agent>ie6,ie8,gecko,gecko1_8,safari,opera</gwt.compile.user.agent> 
</properties> 
<profiles> 
    <profile> 
    <id>gwt-firefox</id> 
    <properties> 
     <gwt.compile.user.agent>gecko1_8</gwt.compile.user.agent> 
    </properties> 
    </profile> 
</profiles> 
<!-- Add additional profiles for the browsers you want to singly support --> 
.... 
<build> 
    <resources> 
    <resource> 
     <!-- Put the filtered source files into a directory that later gets added to the build path --> 
     <directory>src/main/java-filtered</directory> 
     <filtering>true</filtering> 
     <targetPath>${project.build.directory}/filtered-sources/java</targetPath> 
    </resource> 
    <resource> 
     <directory>${project.basedir}/src/main/resources</directory> 
    </resource> 
    </resources> 
    <plugins> 
    ... 
    <plugin> 
    <!-- Add the filtered sources directory to the build path--> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.5</version> 
    <executions> 
     <execution> 
     <id>add-source</id> 
     <phase>generate-sources</phase> 
     <goals> 
      <goal>add-source</goal> 
     </goals> 
     <configuration> 
      <sources> 
      <source>${project.build.directory}/filtered-sources/java</source> 
      </sources> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
    ... 
</plugins> 
... 

Haben Sie alle Ihre Module das MavenFilteredUserAgent Modul erben.

Dann können Sie nur für Firefox wie so bauen.

mvn install -Pgwt-firefox

http://9mmedia.com/blog/?p=854 mehr Details hat.

+1

Für [GWT 2.1.1] (http://groups.google.com/group/google-web-toolkit/browse_thread/thread/6f2418947d7efeb9/2a6615d8b719089) möchten Sie den Gecko aus der Standardliste entfernen. Diese sollte im Grunde dieselbe Liste wie das Basismodul [UserAgent] (http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/user) haben /UserAgent.gwt.xml) – Gabriel

+1

Ich bekomme immer: [INFO] [ERROR] Ungültiger Eigenschaftswert '$ {gwt.compile.user.agent}' [INFO] [ERROR] Fehler beim Parsen von XML – Alex

Verwandte Themen