Портирование веб-проекта tomcat с eclipse ganymede на intellij 8.1 - PullRequest
1 голос
/ 19 мая 2009

У меня есть стандартный (я думаю) веб-проект, разработанный с помощью eclipse IDE. Я хочу перенести его на 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).

Я думаю, что хорошим ответом будет стандартный пошаговый ответ поваренной книги о том, как портировать (и, возможно, как правильно определить веб-приложение tomcat в рамках идеи intellij).

Спасибо всем!

Ответы [ 3 ]

2 голосов
/ 29 июня 2009

Я думаю, что первым шагом будет создание автономного файла сборки, который будет генерировать WAR. Сделайте это перед попыткой импортировать проект в InteliJ.

Я бы использовал Maven . Создание файла POM maven * от 1006 * до Создание WAR является почти тривиальным, и вы можете легко переопределить расположение по умолчанию для вашего src, conf и веб-содержимого в соответствии с существующим каталогом src. Затем протестируйте сборку, развернув недавно созданную Maven WAR для Tomcat. Я не думаю, что это первое задание займет больше половины дня (максимум целый день).

IntelliJ имеет встроенную утилиту для импорта проектов Maven . Тогда вы должны быть запущены ....

Независимо от среды IDE, на которой вы наконец остановились, ваш проект будет гораздо лучше в долгосрочной перспективе для миграции на Maven.

Ваш исходный POM-файл Maven будет выглядеть как-то вот так ...

<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 ... Он предназначен для начала работы и может работать не так, как есть.

1 голос
/ 02 июля 2009

Начните с создания пустого веб-приложения для Tomcat в IntelliJ - и убедитесь, что оно правильно развертывается Это создаст структуру каталогов, в которую вы затем сможете скопировать ваши исходные файлы / веб-ресурсы.

Вещи, которые вам, вероятно, придется обрабатывать по-разному, это файлы lib - не храните их непосредственно в каталоге WEB-INF, так как храните их в отдельной области «библиотеки» и разрешаете в IDE включать их в WAR во время сборки это, как правило, лучший подход, так как он способствует повторному использованию в проектах.

Главное, к чему нужно стремиться, это не пытаться настроить свой проект так, чтобы он полностью отражал приложение tomcat, так как процесс сборки объединит для вас различные части. Все это разбито на 3 раздела ...

  1. Статические ресурсы - изображения, файлы конфигурации и файлы jsp (Хорошо, я знаю, что файлы JSP довольно динамичны)
  2. Классы Java - исходный код, который вы пишете сами (IDE скомпилирует их и поместит в соответствующее место)
  3. Библиотеки Java - сторонний код, который вы компилируете (опять-таки среда IDE разместит их в соответствующем месте)

В файле проекта есть несколько элементов конфигурации, которые вам необходимо настроить в соответствии с вашими потребностями, но, как правило, это просто.

0 голосов
/ 19 мая 2009
  1. По умолчанию log4j будет искать свой файл конфигурации (log4j.xml или log4j.properties) в пути к классам вашего приложения. Таким образом, это означает, что вы должны поместить его в WEB-INF\classes, или вы можете указать другое местоположение с помощью переменной окружения log4j.configuration. См. Руководство log4j .
  2. Какая IDE, которую вы используете, не должна влиять на структуру вашего приложения, когда оно развертывается в вашем контейнере сервлета. Похоже, вы полагались на Eclipse для упаковки файлов особым образом - это, вероятно, плохая практика. Вы используете реальный скрипт сборки?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...