2011-03-23 101 views
25

如何在eclipse中從我的gwt-project創建一個.war文件?從gwt-project創建一個.war文件

+1

http://www.java-tips.org/other-api-tips/eclipse/how-to-make-war-file-in-eclipse.html – 2011-03-23 09:37:01

回答

29

我總是使用Ant構建文件,所以項目被編譯並打包成一個單擊的戰爭。

一個XML文件添加到您的項目有以下內容:(到路徑編輯`YourProject.EntryPointClass到您的入口點類)

<project name="test" basedir="." default="default"> 
<property name="src.dir" value="src" /> 
<property name="build.dir" value="war" /> 
<path id="compile.classpath"> 
    <fileset dir="${build.dir}/WEB-INF/lib"> 
     <include name="**/*.jar" /> 
     <include name="**/*.xml" /> 
    </fileset> 
</path> 

<target name="default" depends="gwtc, buildwar,deploy"> 
</target> 

<target name="gwtc" description="GWT compile to JavaScript"> 
    <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler"> 
     <classpath> 
      <pathelement location="${src.dir}" /> 
      <path refid="compile.classpath" /> 
     </classpath> 
     <arg line="-logLevel INFO" /> 
     <jvmarg value="-Xmx1024M" /> 
     <arg value="YourProject.EntryPointClass" /> 
    </java> 
</target> 

<target name="buildwar"> 
    <war basedir="war" destfile="YourProject.war" webxml="war/WEB-INF/web.xml"> 
     <exclude name="WEB-INF/**" /> 
     <webinf dir="war/WEB-INF/"> 
      <include name="**/gwt-servlet.jar" /> 
      <include name="**/classes/**" /> 
     </webinf> 
    </war> 
</target> 

<target name="deploy"> 
    <copy file="YourProject.war" todir="." /> 
</target> 

</project> 

您需要添加gwt-user.jargwt-dev.jar到您的項目構建路徑(右鍵單擊您的項目 - >構建路徑 - >添加外部存檔)。

如果您現在查看您的「問題」 - 查看,您會收到警告,指出兩個文件在服務器的類路徑中不可用。您可以使用QuickFix將其複製到WEB-INF/lib或隱藏警告。構建文件不會在war文件中包含這兩個文件。

編譯和創建文件所需要做的就是右鍵單擊xml文件並選擇作爲Ant Build運行。

+0

xml文件未正確結束,請修復它的完整性。 – Raffo 2013-02-27 09:12:14

+0

@Raffo修正了它。感謝您指出我。 – 2013-02-27 12:20:59

+0

該答案中的方向術語「EntryPoint-class的路徑」應該是「模塊文件的路徑( .gwt.xml)」? 在我的情況下(從官方的GWT教程:http://www.gwtproject.org/doc/latest/tutorial/create.html),最終成爲「com.google.gwt.sample.stockwatcher.StockWatcher」 ,其中com是src下的第一個dir,StockWatcher是該路徑末尾的.gwt.xml模塊文件的名稱(使用該文件成功編譯&.war)。而在輸入EntryPoint-class的Java.class文件的路徑之前,它不起作用。 – cellepo 2015-10-13 23:03:10

2

也可以使用webAppCreator來生成Ant構建文件。

webAppCreator附帶GWT SDK和Eclipse GWT插件。首先找到GWT插件目錄

find $HOME/.eclipse/ -name "*gwt*sdk*" 

這將輸出GWT插件目錄路徑。這個目錄有gwt-dir,類似gwt-2.4.0。 WebAppCreator將在這個目錄中。將此dir設置爲GWTSDK_HOME。

export GWTSDK_HOME=/home/m/.eclipse/org.eclipse.platform_3.7.0_1364963873/plugins/com.google.gwt.eclipse.sdkbundle_2.4.0.v201201120043-rel-r37/gwt-2.4.0 

化妝webAppCreator可執行

chmod 755 $GWTSDK_HOME/webAppCreator 

現在創建一些臨時目錄使用webAppCreator項目。

$GWTSDK_HOME/webAppCreator -out fins in.m.fins.Fins 

in.m.fins.Fins是模塊的名字。這必須與Eclipse工作區中的項目gwt.xml相匹配。如果您gwt.xml是的src /中/ M /片/ Fins.gwt.xml然後模塊名稱應該是in.m.fins.Fins

退房手續片將創建項目並生成.xml在fins目錄下。將生成的build.xml文件複製到Eclipse工作區中的項目中。在Eclipse的Ant窗口

運行戰爭目標打包項目作爲戰爭

1

你必須有從這裏

http://dl.google.com/eclipse/inst/d2gwt/latest/3.7

  1. 在Eclipse安裝在主面板中,單擊GWT設計師的「部署模塊在應用程序服務器上「(這是旁邊的藍色谷歌按鈕)。
  2. 之所以選擇戰爭文件的名稱和位置在哪裏存儲它
  3. 單擊確定

就是這樣。作品在我的GWT 2.4.0,谷歌Eclipse插件4.2,Eclipse的朱諾

12

使用Eclipse:

  1. 右鍵單擊該項目
  2. 選擇谷歌→GWT編譯
  3. 當編譯完成後,控制檯會說即

    Linking into /home/janus/bpworkspace/gwtwerkstatt2/war/gwtwerkstatt2

    Link succeeded

    Compilation succeeded -- 28.623s

  4. 打開一個終端並導航到該目錄

  5. 創建WAR:jar cv * > /tmp/myGWTproject.war
  6. 你現在可以用碼頭亞軍或類似的啓動它:java -jar jetty-runner-8.1.7.v20120910.jar /tmp/myGWTproject.war
+0

這對我有效:'jar cvf myGWTProject.war .' – Bizmarck 2013-09-19 17:11:00

+2

請注意任何人都像我剛纔那樣絆倒這個答案:你必須做「jar cvf YourWar.war」。而不是在步驟3中鏈接到的目錄。 – 2014-10-28 17:23:11

+0

如果項目具有任何項目依賴關係,則可能還必須編譯它們並在創建之前將.jar文件放入war/WEB-INF/lib文件夾中.war文件。每次更新時都必須重複此操作。 – thomas88wp 2016-09-29 18:21:53

0

拳編譯您的項目。然後: 1.打開您的項目。 2.導航到war文件夾。 3.轉到文件>導出>存檔文件 4.將您的戰爭文件夾導出爲zip文件。 5.將您的文件擴展名形式.zip更改爲.war 6.保持冷靜並享受您的戰爭文件。

-1

編譯您的項目。然後:

  1. 打開您的項目。
  2. 導航到war文件夾。
  3. 轉至文件>導出>存檔文件
  4. 將您的戰爭文件夾導出爲zip文件。
  5. 將您的文件擴展名格式.zip更改爲.war
  6. 保持冷靜,暢享放意的戰爭檔案。
+0

我不認爲這就是歐普所要求的,即使這個問題可能會提示。 – 2014-05-04 21:17:53