क्या आप अपने पोम में की जरूरत है है:
एक न्यूनतम, सर्वर के लिए कभी नहीं तैनात पर
- GWT निर्भरता (gwt-उपयोगकर्ता; GWT-RPC या अन्य सर्वर-साइड समर्थन, पहले से ही gwt-उपयोगकर्ता में शामिल कक्षाओं के लिए gwt-सर्वलेट; gwt -dev और gwt-codeerver की अनुशंसा की जाती है, यह उस प्लगइन पर निर्भर करता है जिसका आप उपयोग करेंगे, कभी भी उन्हें तैनात न करें)
- gwt-maven-plugin; उनमें से दो हैं:
org.codehaus.mojo:gwt-maven-plugin
(जिसका संस्करण संस्करण GWT आप उपयोग कर रहे मेल खाना चाहिए), और net.ltgt.gwt.maven:gwt-maven-plugin
(अभी भी बीटा में; GWT के किसी भी संस्करण के साथ काम करता)
प्लगइन के आधार पर आप का उपयोग करेंगे विभिन्न पैकेजिंग और प्लगइन विन्यास।
अंतिम, लेकिन कम से कम नहीं, आपको वास्तव में क्लाइंट और सर्वर साइड कोड के लिए अलग मैवेन मॉड्यूल का उपयोग करना चाहिए, साथ ही संभवतः साझा कोड के लिए एक तीसरा मॉड्यूल भी उपयोग करना चाहिए। एक छोटी परियोजना के लिए, हालांकि, एक मॉड्यूल का उपयोग करना पर्याप्त हो सकता है (लेकिन अगर आप अपने सर्वर पर अपने क्लाइंट-साइड क्लासेस को तैनात नहीं करना चाहते हैं तो आपको अपने पीओएम में कुछ कॉन्फ़िगरेशन/हैक जोड़ना होगा)।
हमें देता है यही कारण है, एक एकल मॉड्यूल परियोजना (मिश्रित ग्राहक और एक ही परियोजना में सर्वर-साइड कोड) के लिए, CodeHaus मोजो प्लगइन के साथ:
<?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>
और mvn gwt:run
का उपयोग DevMode चलाने के लिए (जो कुछ सीमाओं के साथ, आपके सर्वर-साइड कोड भी चलाएगा)।
या net.ltgt प्लगइन के लिए:
<?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>
और SuperDevMode (क्लाइंट-साइड कोड केवल) को चलाने के लिए mvn gwt:codeserver
का उपयोग करें। यद्यपि आपको अपने सर्वर-साइड कोड को चलाने के लिए जेटी-मेवेन-प्लगइन या tomcat7-maven-plugin का उपयोग करना होगा।
एक बहु मॉड्यूल परियोजना के लिए, मेरे आद्यरूप पर एक नजर है: https://github.com/tbroyer/gwt-maven-archetypes मैं उन्हें, net.ltgt प्लगइन की ओर पलायन को सरल बनाने आप उन्हें कैसे (कोई जरूरत mvn install
को चलाएंगे करने की प्रक्रिया में हूँ अब, mvn gwt:codeserver
बहु मॉड्यूल परियोजनाओं, CodeHaus मोजो के gwt:run
के विपरीत और gwt:run-codeserver
)
अस्वीकरण के लिए डिजाइन किया गया है: मैं दोनों प्लग-इन मेंटेनर हूँ, लेकिन मैं अपने ही प्लगइन है, जो IMO एक बहुत ठीक करता है के पक्ष में था कोडहॉस मोजो एक की quirks और गलतियों और विरासत की।
धन्यवाद थॉमस, हालांकि, मैं थोड़ा के बारे में उलझन में हूँ: com.example.test.Test । क्या यह gwt.xml फ़ाइल के लिए "पथ" होना चाहिए? –
jgp
हां: बिंदीदार पैकेज का नाम + एक्सटेंशन के बिना फ़ाइल का नाम (नोट: यह ** ** एक फाइल सिस्टम पथ नहीं है!) –