1

我有一个使用 eclipse IDE 开发的标准(我认为)Web 项目。我希望将它移植到 Intellij idea 8.1 - 我认为,除其他外,它具有更好的 taglib 支持。

我的项目结构如下:

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 应用程序)的食谱答案。

谢谢大家!

4

3 回答 3

2

我认为第一步是创建一个独立的构建文件,它将产生一个 WAR。在尝试将项目导入 InteliJ 之前执行此操作。

我会使用Maven创建一个 Maven POM 文件创建一个 WAR几乎是微不足道的,您可以轻松地覆盖您的 src、conf 和 web 内容的默认位置以匹配您现有的 src 目录。然后通过将新的 Maven 创建的 WAR 部署到 Tomcat 来测试构建。我认为第一项任务不会超过半天(最多一整天)。

IntelliJ 具有用于导入 Maven 项目的内置实用程序。然后你应该下车并运行......

无论您最终选择哪种 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...它只是为了让您入门,可能无法“按原样”工作。

于 2009-06-29T18:27:16.820 回答
1

首先在 IntelliJ 中为 tomcat 创建一个空的 Web 应用程序 - 并确保它正确部署 这将生成一个目录结构,然后您应该能够将源文件/Web 资产复制到该目录结构中。

您可能需要以不同方式处理的事情是 lib 文件 - 不要将它们直接存储在 WEB-INF 目录中,因为将它们保存在单独的“库”区域中,并允许 IDE 将它们包含在 WAR 中在构建时通常是一种更好的方法,因为它促进了跨项目的重用。

目标的关键是不要尝试将您的项目设置为完全镜像 tomcat 应用程序,因为构建过程会为您整合各个部分。这一切都分为3个部分......

  1. 静态资产 - 图像、配置文件和 jsp 文件(好吧,我知道 JSP 文件有点动态)
  2. Java 类 - 您自己编写的源代码(IDE 将编译这些并将它们放置在适当的位置)
  3. Java 库 - 您编译的第三方代码(IDE 将再次将它们放置在适当的位置)

项目文件中有一些配置,您需要根据需要进行调整,但通常很简单。

于 2009-07-02T07:51:05.567 回答
0
  1. 默认情况下,log4j 将从应用程序的类路径中查找它的配置文件(log4j.xml 或 log4j.properties)。所以这意味着你应该把它放在里面WEB-INF\classes,或者你可以用环境变量指定一个不同的位置log4j.configuration。请参阅log4j 手册
  2. 当应用程序部署到 servlet 容器时,您使用的 IDE 应该不会影响应用程序的结构。听起来您可能依赖 Eclipse 以特定方式打包文件——这可能是一种不好的做法。您使用的是实际的构建脚本吗?
于 2009-05-19T12:43:43.200 回答