2009-05-19 1 views
1

У меня есть стандартный (я думаю) веб-проект, разработанный с помощью Eclipse IDE. Я хочу перенести его в Intellij idea 8.1. Я думаю, что, между прочим, он имеет лучшую поддержку taglib.Портирование веб-проекта tomcat от eclipse ganymede до intellij 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).

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

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

ответ

2

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

Я бы использовал Maven. Creating a maven POM file до create a WAR почти тривиально, и вы можете легко переопределить местоположения по умолчанию для вашего src, conf и веб-контента в соответствии с существующим каталогом 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

Я только что познакомился с maven и считаю, что это довольно аккуратно. Но нет ли стандартного пути? Нет ли фиксированной структуры каталогов, которая неизменна для IDE? – Yaneeve

+0

Не то, чтобы я знал. Кажется, что каждая команда и каждая IDE делают что-то совсем другое. Я стараюсь управлять моими командами, чтобы следовать соглашениям Maven, поэтому мы не должны переоценивать любые действия, но это действительно более личные предпочтения. – Vinnie

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

Несмотря на наличие файла build.xml для создания .war-файла (для производственных целей), я полагался на eclipse для развертывания взорванного веб-приложения на локальном сервере tomcat ... – Yaneeve

+0

Я бы не предложил это как плохая практика - вы полагаетесь на способ развертывания IDE; лучше иметь такую ​​упаковку в строгой части скрипта сборки. –

1

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

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

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

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

Есть несколько бит конфигурации в файле проекта, который вам нужно настроить, чтобы учесть наши потребности, но это, как правило, просто.

Смежные вопросы