2009-05-19 77 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我们的需求,但它通常很简单。