2015-02-20 22 views

cevap

7

geçerli:

sunucuya konuşlanmış asla asgari seviyede
  • GWT bağımlılıkları (gwt kullanıcılı; GWT-RPC veya diğer sunucu tarafı desteği, zaten gwt kullanıcı dahil sınıflar için gwt-sunucu uygulaması; gwt -dev ve gwt-codeserver önerilir, kullanacağınız eklentiye bağlıdır, asla bunları dağıtmayın)
  • gwt-maven-plugin; Bunlardan iki tane vardır: org.codehaus.mojo:gwt-maven-plugin (kimin versiyonu GWT kullandığınız sürümü aynı olmalıdır) ve net.ltgt.gwt.maven:gwt-maven-plugin (hala beta; GWT herhangi bir sürümü ile çalışır) eklentiye bağlı

, kullanacağınız farklı paketleme ve eklenti yapılandırması.

Son olarak, en önemlisi, istemci ve sunucu tarafı kodu için ayrı Maven modüllerini kullanmanız ve muhtemelen paylaşılan kod için üçüncü bir modül kullanmanız gerekir. Ancak, küçük bir proje için, tek bir modül kullanmak yeterli olabilir (ancak istemci tarafındaki sınıflarınızı sunucunuza dağıtmak istemiyorsanız, POM'unuza bazı konfigürasyon/korsanlık eklemeniz gerekecektir). CodeHaus Mojo eklenti ile, tek modül projesi (karma bir istemci ve aynı projede sunucu tarafı kodu) için, bize verdiği

:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.example</groupId> 
    <artifactId>test</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <dependencyManagement> 
    <dependencies> 
     <dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt</artifactId> 
     <version>2.7.0</version> 
     <type>pom</type> 
     <scope>import</scope> 
     </dependency> 
    </dependencies> 
    </dependencyManagement> 
    <dependencies> 
    <dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt-user</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt-dev</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt-codeserver</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt-servlet</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
    </dependencies> 

    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>gwt-maven-plugin</artifactId> 
     <version>2.7.0</version> 
     <executions> 
      <execution> 
      <goals> 
       <goal>compile</goal> 
      </goals> 
      </execution> 
     </executions> 
     <configuration> 
      <module>com.example.test.Test</module> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

Ve (DEVMODE çalıştırmak için mvn gwt:run kullanan Sunucu tarafı kodunuzu da bazı sınırlamalarla çalıştıracaktır).

Ya net.ltgt eklenti

:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.example</groupId> 
    <artifactId>test</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>gwt-app</packaging> 

    <dependencyManagement> 
    <dependencies> 
     <dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt</artifactId> 
     <version>2.7.0</version> 
     <type>pom</type> 
     <scope>import</scope> 
     </dependency> 
    </dependencies> 
    </dependencyManagement> 
    <dependencies> 
    <dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt-user</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt-dev</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt-codeserver</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt-servlet</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
    </dependencies> 

    <build> 
    <plugins> 
     <plugin> 
     <groupId>net.ltgt.gwt.maven</groupId> 
     <artifactId>gwt-maven-plugin</artifactId> 
     <version>1.0-beta-1</version> 
     <extensions>true</extensions> 
     <configuration> 
      <moduleName>com.example.test.Test</moduleName> 
      <launcherDir>${project.build.directory}/${project.build.finalName}</launcherDir> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

Ve SuperDevMode (istemci tarafında kod için) çalıştırmak için mvn gwt:codeserver kullanın. Sunucu tarafı kodunuzu çalıştırmak için jetty-maven-plugin veya tomcat7-maven-plugin kullanmanız gerekecek. Bir çok modül proje için


, benim archetypes bakabilirsiniz: https://github.com/tbroyer/gwt-maven-archetypes Ben net.ltgt eklenti onları geçmenin, mvn install onları (gerek kaçıyorum nasıl basitleştirilmesi sürecinde kulüpler artık; mvn gwt:codeserver çok modülü projelerinde, aksine gwt:run-codeserver CodeHaus Mojo'nın gwt:run ve)

Yasal Uyarı için dizayn edilmiştir: Her iki eklentileri için sürdürücü değilim, ama IMO çok düzeltir kendi eklentisi, iyilik ediyorum Quirks ve CodeHaus Mojo bir miras ve mirası. Başka Maven'in arketip bir şablon/saplama projesi oluşturmak için gibi

kullanın Archetype kullanarak

+0

Teşekkür Thomas, ancak, yaklaşık biraz karıştı: com.example.test.Test. Bu gwt.xml dosyasının "yolu" olmalı mı? – jgp

+0

Evet: noktalı paket adı + uzantısız dosyanın adı (not: bu ** bir dosya sistemi yolu değil!) –

1

: Özellikle temiz bakıyorum

// install çalışan (bir önceki projede çalıştırmak ben gwt kullanılan): Eğer POM gerekenler

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.arcbees</groupId> 
    <artifactId>website</artifactId> 
    <version>3.0-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <name>Arcbees Website</name> 

    <properties> 
     <target.jdk>1.7</target.jdk> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 

     <maven-surefire-plugin.version>2.6</maven-surefire-plugin.version> 
     <maven-compiler-plugin.version>2.3.2</maven-compiler-plugin.version> 
     <maven-gae-plugin.version>0.9.5</maven-gae-plugin.version> 
     <gwt-maven-plugin.version>2.7.0</gwt-maven-plugin.version> 
     <maven-clean-plugin.version>2.6.1</maven-clean-plugin.version> 

     <gwt.version>2.7.0</gwt.version> 
     <gae.version>1.9.9</gae.version> 
     <gwtp.version>1.5-SNAPSHOT</gwtp.version> 
     <guice.version>3.0</guice.version> 
     <gin.version>2.1.2</gin.version> 
     <gsss.version>1.0-SNAPSHOT</gsss.version> 
     <gwtquery.version>1.4.3-SNAPSHOT</gwtquery.version> 
     <gwt-maps-api.version>3.10.0-alpha-7</gwt-maps-api.version> 
     <tooltip.version>1.1</tooltip.version> 
     <appear.version>1.0-SNAPSHOT</appear.version> 
     <gwtchosen.version>2.0.0-SNAPSHOT</gwtchosen.version> 
     <guava.version>18.0</guava.version> 
     <universal-analytics.version>2.1</universal-analytics.version> 
     <velocity.version>1.7</velocity.version> 
     <gwt-seo.version>0.1-SNAPSHOT</gwt-seo.version> 

     <webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory> 
     <gae.home> 
      ${settings.localRepository}/com/google/appengine/appengine-java-sdk/${gae.version}/appengine-java-sdk-${gae.version} 
     </gae.home> 
    </properties> 

    <repositories> 
     <repository> 
      <id>sonatype.snapshots</id> 
      <name>Sonatype snapshot repository</name> 
      <url>https://oss.sonatype.org/content/repositories/snapshots/</url> 
      <snapshots> 
       <enabled>true</enabled> 
      </snapshots> 
     </repository> 
    </repositories> 

    <dependencies> 
     <!-- Google Web Toolkit dependencies --> 
     <dependency> 
      <groupId>com.google.gwt</groupId> 
      <artifactId>gwt-user</artifactId> 
      <version>${gwt.version}</version> 
      <scope>provided</scope> 
     </dependency> 

     <!-- GWT-Platform dependencies --> 
     <dependency> 
      <groupId>com.gwtplatform</groupId> 
      <artifactId>gwtp-mvp-client</artifactId> 
      <version>${gwtp.version}</version> 
      <scope>provided</scope> 
     </dependency> 

     <!-- DI dependencies --> 
     <dependency> 
      <groupId>com.google.gwt.inject</groupId> 
      <artifactId>gin</artifactId> 
      <version>${gin.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.google.inject</groupId> 
      <artifactId>guice</artifactId> 
      <version>${guice.version}</version> 
     </dependency> 

     <!-- Other --> 
     <dependency> 
      <groupId>com.arcbees.seo</groupId> 
      <artifactId>gwt-seo</artifactId> 
      <version>${gwt-seo.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.arcbees.gss</groupId> 
      <artifactId>gsss</artifactId> 
      <version>${gsss.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.googlecode.gwtquery</groupId> 
      <artifactId>gwtquery</artifactId> 
      <version>${gwtquery.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.gwtplatform</groupId> 
      <artifactId>gwtp-crawler</artifactId> 
      <version>${gwtp.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.github.branflake2267</groupId> 
      <artifactId>gwt-maps-api</artifactId> 
      <version>${gwt-maps-api.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.arcbees.gquery</groupId> 
      <artifactId>tooltip</artifactId> 
      <version>${tooltip.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.arcbees.gquery</groupId> 
      <artifactId>appear</artifactId> 
      <version>${appear.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.arcbees.analytics</groupId> 
      <artifactId>universal-analytics</artifactId> 
      <version>${universal-analytics.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.google.guava</groupId> 
      <artifactId>guava-gwt</artifactId> 
      <version>${guava.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.google.guava</groupId> 
      <artifactId>guava</artifactId> 
      <version>${guava.version}</version> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.arcbees</groupId> 
      <artifactId>gwtchosen</artifactId> 
      <version>${gwtchosen.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.velocity</groupId> 
      <artifactId>velocity</artifactId> 
      <version>${velocity.version}</version> 
     </dependency> 
    </dependencies> 

    <dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>com.google.gwt</groupId> 
       <artifactId>gwt-user</artifactId> 
       <version>${gwt.version}</version> 
       <scope>provided</scope> 
      </dependency> 
      <dependency> 
       <groupId>com.google.gwt</groupId> 
       <artifactId>gwt-dev</artifactId> 
       <version>${gwt.version}</version> 
       <scope>provided</scope> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 

    <build> 
     <!--suppress MavenModelInspection --> 
     <outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory> 

     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>gwt-maven-plugin</artifactId> 
       <version>${gwt-maven-plugin.version}</version> 

       <configuration> 
        <module>com.arcbees.website.Arcbees</module> 
        <testTimeOut>180</testTimeOut> 
        <includes>**/*GwtTest.java</includes> 
        <mode>htmlunit</mode> 

        <extraJvmArgs>-Xss1024K -Xmx1024M -XX:MaxPermSize=512M -Duser.language=en -Duser.country=US 
        </extraJvmArgs> 
        <logLevel>INFO</logLevel> 

        <copyWebapp>true</copyWebapp> 
        <hostedWebapp>${webappDirectory}</hostedWebapp> 

        <extraParam>true</extraParam> 
        <extra>extras</extra> 
        <optimizationLevel>9</optimizationLevel> 
        <deploy>${project.build.directory}/gwtDeploy</deploy> 
       </configuration> 
       <executions> 
        <execution> 
         <goals> 
          <goal>resources</goal> 
          <goal>compile</goal> 
          <goal>test</goal> 
         </goals> 
        </execution> 
       </executions> 

      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>${maven-compiler-plugin.version}</version> 
       <configuration> 
        <source>${target.jdk}</source> 
        <target>${target.jdk}</target> 
        <encoding>${project.build.sourceEncoding}</encoding> 
        <!-- Disable annotation processors during normal compilation --> 
        <proc>none</proc> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.4</version> 
       <executions> 
        <execution> 
         <phase>compile</phase> 
         <goals> 
          <goal>exploded</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <webappDirectory>${webappDirectory}</webappDirectory> 
        <webResources> 
         <resource> 
          <directory>src/main/webapp/WEB-INF</directory> 
          <filtering>true</filtering> 
          <includes> 
           <include>appengine-web.xml</include> 
          </includes> 
          <targetPath>WEB-INF</targetPath> 
         </resource> 
        </webResources> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>net.kindleit</groupId> 
       <artifactId>maven-gae-plugin</artifactId> 
       <version>${maven-gae-plugin.version}</version> 
       <dependencies> 
        <dependency> 
         <groupId>net.kindleit</groupId> 
         <artifactId>gae-runtime</artifactId> 
         <version>1.8.8</version> 
         <type>pom</type> 
        </dependency> 
       </dependencies> 
       <configuration> 
        <sdkDir>${gae.home}</sdkDir> 
        <serverId>appengine-credentials</serverId> 
        <splitJars>true</splitJars> 
       </configuration> 
       <executions> 
        <execution> 
         <id>install-server-jar</id> 
         <phase>validate</phase> 
         <goals> 
          <goal>unpack</goal> 
         </goals> 
        </execution> 
        <execution> 
         <id>deploy</id> 
         <goals> 
          <goal>deploy</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
    <profiles> 
     <profile> 
      <id>sdm</id> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.codehaus.mojo</groupId> 
         <artifactId>gwt-maven-plugin</artifactId> 
         <version>${gwt-maven-plugin.version}</version> 
         <configuration> 
          <module>com.arcbees.website.ArcbeesDev</module> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
    </profiles> 

    <distributionManagement> 
     <repository> 
      <id>local-target</id> 
      <url>file://${project.build.directory}/distribution/release</url> 
     </repository> 
    </distributionManagement> 

</project> 
İlgili konular