2009-05-19 79 views
1

我有一個用eclipse IDE開發的標準(我認爲)web項目。我希望將其移植到Intellij idea 8.1 - 我認爲,除此之外,它具有更好的taglib支持。從eclipse ganymede移植到intellij的tomcat web項目8.1

我的項目結構如下:

Project Folder 
./src [java source files etc.] 
./conf [configuration files - log4j, spring beans...] 
./buid [ant files] 
./WebContent 
./WebContent/images [image files] 
./WebContent/META-INF 
./WebContent/META-INF/context.xml 
./WebContent/pages [.jsp+.html files] 
./WebContent/scripts [.js files] 
./WebContent/skins [.css files] 
./WebContent/WEB-INF 
./WebContent/WEB-INF/classes [.class files] 
./WebContent/WEB-INF/lib [.jar files] 
./WebContent/WEB-INF/tags [.tag files] 
./WebContent/WEB-INF/web.xml 

我似乎無法得到配置與本地Tomcat服務器(版本:Apache的Tomcat的6.0.18)這個項目。

我認爲一個好的答案將是一個標準,一步一步,食譜答案,如何端口(也許如何正確定義的IntelliJ IDEA內的Tomcat Web應用程序)。

謝謝大家!

回答

2

我認爲第一步是創建一個獨立的構建文件,它將產生一個WAR。在嘗試將項目導入InteliJ之前執行此操作。

我會用MavenCreating a maven POM filecreate a WAR幾乎是微不足道的,您可以輕鬆覆蓋src,conf和web內容的默認位置以匹配您現有的src目錄。然後通過將新創建的Maven WAR部署到Tomcat來測試構建。我不認爲這個第一項任務會花費超過半天(最多一整天)。

的IntelliJ有built in utility to import Maven projects。那麼你就應該關閉和運行....

不管你最後定居在IDE中,您的項目將在Maven的遷移從長遠來看好得多。

您最初的Maven POM文件看起來東西這樣的...

<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.yourcompany.yourapp</groupId> 
    <artifactId>yourapp</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>Your project name here</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
     </dependency> 
     <dependency> 
     *** other dependencies here *** 
     </dependency> 
    </dependencies> 
    <build> 
    <sourceDirectory>src</sourceDirectory> 
    <resources> 
     <resource> 
      <directory>conf</directory> 
      <includes> 
       <include>**/*.xml</include> 
      </includes> 
     </resource> 
    </resources> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.0</version> 
      <configuration> 
       <webResources> 
       <resource> 
        <!-- this is relative to the pom.xml directory --> 
        <directory>WebContent</directory> 
       </resource> 
       </webResources> 
      </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

***這是一個例子POM只有...它只是意味着你開始和可能不起作用「原樣「。

0
  1. 默認情況下,log4j將從應用程序的類路徑中查找它的配置文件(log4j.xml或log4j.properties)。所以這意味着你應該把它放在WEB-INF\classes中,或者你可以用環境變量log4j.configuration指定一個不同的位置。請參閱log4j manual
  2. 當你的應用程序被部署到你的servlet容器時,你使用的IDE應該不會影響你的應用程序的結構。這聽起來也許你是依靠Eclipse來以特定的方式打包文件 - 這可能是一個不好的做法。你在使用實際的構建腳本嗎?
+0

儘管有一個build.xml文件用於創建.war文件(用於生產目的),但我依靠eclipse將展開的Web應用程序部署到本地tomcat服務器...... – Yaneeve 2009-05-19 12:55:10

+0

我不會真的建議一個糟糕的做法 - 你依靠IDE將部署它的方式;更好的是讓包裝成爲構建腳本的嚴格組成部分。 – 2009-05-19 13:45:53

1

首先在IntelliJ中爲tomcat創建一個空的Web應用程序,並確保它正確部署 這將產生一個目錄結構,然後您應該能夠將源文件/ Web資產複製到其中。

,你可能需要處理不同的是LIB文件的東西 - 這些,不直接存儲在WEB-INF目錄中,讓他們在一個單獨的「庫」區域,並允許IDE包括他們在建造時期的WAR通常是一種更好的方法,因爲它促進了跨項目的重用。

關鍵在於不要試圖將您的項目設置爲完全鏡像tomcat應用程序,因爲構建過程會將各個部分拉到一起。這一切都分解成3個部分...

  1. 靜態資產 - 圖像,配置文件和JSP文件(好吧,我知道JSP文件是有點動態)
  2. Java類 - 源代碼,你自己寫( IDE將編譯這些並將其放置在適當的位置)
  3. Java庫 - 第三方代碼,你編譯反對(再次IDE將會把這些在適當的位置)

有幾個位配置,在項目文件中,你需要調整以適應y我們的需求,但它通常很簡單。