2013-11-21 85 views
1

我想在生產模式下編譯GWT代碼,以便在生成的JavaScript文件中沒有任何Dev模式代碼。我在pom文件中爲我的gwt-maven-plugin設置了生產模式,如下所示。但是,我仍然獲得託管模式代碼生成。我能做什麼,使用maven在生產模式下編譯?有沒有可以在我的pom文件或* .gwt.xml文件或其他地方設置的標誌/屬性?有沒有辦法在生產模式下使用maven編譯GWT代碼

 <!-- Compile Using GWT --> 

     <plugin> 

      <groupId>org.codehaus.mojo</groupId> 

      <artifactId>gwt-maven-plugin</artifactId> 

      <version>2.5.1</version> 

      <executions> 

       <execution> 

        <goals> 

         <goal>compile</goal> 

        </goals> 

        <configuration> 

        <productionMode>true</productionMode> 

         <classifier>war</classifier> 

         <warSourceDirectory>src/main/webapp</warSourceDirectory> 

         <webappDirectory>war</webappDirectory> 

         <module>${Module.name}</module> 

         <extraJvmArgs>${gwt.extraJvmArgs}</extraJvmArgs> 

        </configuration> 

       </execution> 

      </executions> 

     </plugin> 

我看到在GWT示例中使用Ant來編譯生產。在生產模式下進行編譯時,以下代碼將在其build.xml文件中調用。鋤頭我在maven做這個嗎?如果這是特定於ant的,是否有一個示例在Maven中使用Ant而不更改現有的Maven結構?

<java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler"> 

    <classpath> 

    <pathelement location="src"/> 

    <path refid="project.class.path"/> 

    <pathelement location="../../validation-api-1.0.0.GA.jar" /> 

    <pathelement location="../../validation-api-1.0.0.GA-sources.jar" /> 

    </classpath> 

    <!-- add jvmarg -Xss16M or similar if you see a StackOverflowError --> 

    <jvmarg value="-Xmx256M"/> 

    <arg line="-war"/> 

    <arg value="war"/> 

    <!-- Additional arguments like -style PRETTY or -logLevel DEBUG --> 

    <arg line="${gwt.args}"/> 

    <arg value="com.google.gwt.sample.hello.Hello"/> 

</java> 

回答

0

Maven是蠻好用編譯它 - 你打算什麼例子斷爲執行這樣你缺少phase標籤?

嘗試在goals塊之前或之後添加<phase>prepare-package</phase>,然後執行正常的maven安裝 - 它應該在構建war文件之前運行gwt:compile。

+0

感謝您的回覆。我在目標前後添加了準備包,並且執行了mvn clean install,但仍然以dev模式編譯。我想要做的是擺脫生產JS文件中由GWT開發模式編譯生成的「isHostedMode」方法。 「isHostedMode」方法不應該存在於我的生產代碼中。 –

+1

事實並非如此 - 它會一直存在,因此當您部署到生產站點時,如果必須,仍可以運行開發/託管模式來追蹤錯誤。除非他們在他們的計算機上設置了實際的Java源代碼,否則其他人將無法運行開發模式,因此不會有人用開發模式拆分項目的風險。 –

相關問題