Разработка веб-приложения Scala/Lift с использованием Eclipse и Tomcat

Итак, я провел последние 11 часов, пытаясь заставить даже самое простое приложение Scala/Lift работать на Tomcat через Eclipse. По-видимому, никто не пытается это сделать, или это самая простая вещь в мире, поэтому никто не задокументировал, как они это сделали. Создать код с использованием архетипа maven и запустить его с помощью mvn tomcat:run не проблема. Заставить все это работать через Eclipse — совсем другая история. Я скажу, что это моя первая попытка сделать что-либо с Maven в Eclipse, которая никому не помогла. Я пробовал как m2eclipse, так и eclipse-IAM. Если бы кто-нибудь мог провести меня через процесс от начала до конца или указать мне на ресурсы, которые могут это сделать, это было бы здорово. Спасибо.


Сведения о версии/ошибке

Scala 2.8 с Lift 2.1

Если я использую Scala 2.8 с Lift 2.1(?) с eclipse 3.5.2, scala-ide и eclipse-iam, мой файл pom.xml говорит мне следующее:

Ошибка: ошибка разрешения версии для «org.scala-tools:maven-scala-plugin»: для плагина требуется Maven версии 2.2.1

Я создал проект из мастера создания проектов Maven, используя это определение архетипа:

<archetype>
    <groupId>net.liftweb</groupId>
    <artifactId>lift-archetype-blank_2.8.0</artifactId>
    <version>2.1-SNAPSHOT</version>
    <repository>http://scala-tools.org/repo-snapshots</repository>
    <description>Shawn's Custom Thinger</description>
</archetype>

Насколько я понимаю, проблема здесь в том, что файл pom.xml, созданный из 2.1-SNAPSHOT, требует Maven 2.2.1, но eclipse-iam еще не использует эту версию. Мне не удалось найти способ использовать Maven v2.2.1, который я установил сам. Предположительно, eclipse-iam не позволяет использовать внешнюю установку maven.

Другие попытки

Я пробовал строить проекты с этим архетипом:

<archetype>
    <groupId>net.liftweb</groupId>
    <artifactId>lift-archetype-jpa-blank</artifactId>
    <version>1.1-SNAPSHOT</version>
    <repository>http://scala-tools.org/repo-snapshots</repository>
    <description>Archetype - blank JPA project for Lift</description>
</archetype>

Однако затем я получаю ошибки времени выполнения от Tomcat для ошибки ClassNotFound для моего класса bootstrap.liftweb.Boot. Однако я вижу, что maven создал для меня класс загрузки по умолчанию.

м2затмение

Я получил проект без ошибок, используя m2eclipse, но у меня возникли проблемы с его развертыванием на Tomcat. Я намерен вернуться к этому, так как мне любопытно, удалось ли мне заставить работать один проект, но у меня была проблема с чувствительностью к регистру в URL-адресе, когда я пытался это сделать. Однако этот процесс был гораздо более ручным. Я бы предпочел решение eclipse-iam, если это возможно, но возьму то, что могу получить на данный момент.


person Marshmellow1328    schedule 17.09.2010    source источник
comment
Какая версия подъемника? Какая версия Скала? Какие ошибки вы получаете?   -  person Jim Barrows    schedule 17.09.2010
comment
Я добавил некоторую информацию о версиях, проектах и ​​возникающих ошибках.   -  person Marshmellow1328    schedule 17.09.2010


Ответы (5)


Я не могу начать описывать свое разочарование по той же проблеме. Наконец, единственный документ, который мне помог, это вот этот: http://www.spenceruresk.com/2010/10/developing-with-lift-in-eclipse/

Я думаю, что плагин m2eclipse-scala имел значение.

person Bahadır Yağan    schedule 06.02.2011
comment
Я наткнулся на это еще в октябре и забыл связать это здесь. Вы действительно увидите мой комментарий от 28 октября 2010 года. - person Marshmellow1328; 11.02.2011

Почему вы хотите запустить свое веб-приложение через Eclipse? Не проще ли просто запустить его с помощью плагина Maven Tomcat (mvn tomcat:run) с включенной отладкой (JPDA)? А затем подключиться к нему с помощью удаленного отладчика Eclipse?

ИМХО - это самый простой, гибкий и универсальный способ запуска/отладки приложений JVM, созданных с помощью Maven.

См. также - Лучший способ отладки веб-приложения Java, упакованного как WAR, с использованием Eclipse и Maven?.

person Henryk Konsek    schedule 17.09.2010
comment
Мне нравится помещать все в один инструмент, а не прыгать в командную строку только для того, чтобы запустить мой локальный веб-сервер. Приятно просто нажать кнопку запуска на моем веб-сервере в Eclipse. Это также упрощает локальное развертывание нескольких приложений, если все они взаимодействуют друг с другом. Есть причина, по которой я до сих пор не использую vi для написания кода. Инструменты с графическим интерфейсом удобны. - person Marshmellow1328; 17.09.2010
comment
Maven выполняется из командной строки == vim? Используйте Eclipse и удерживайте открытый терминал во время сеанса разработки. Это лучшее сочетание. На самом деле не все можно легко сделать с помощью IDE. Вам не нужно быть экстремистом IDE или консоли. Вы можете комбинировать их для достижения максимальной эффективности. Они не исключают друг друга. - person Henryk Konsek; 20.09.2010

Возможно, вы можете отредактировать «test/scala/RunWebApp.scala» с причала на tomcat. По моему опыту, после "mvn eclipse:eclipse" для создания файлов проекта. В Eclispe просто запустите "test/scala/RunWebApp.scala" с "Debug As...", JRebel или maven больше не нужны.

person jamesqiu    schedule 29.09.2010

Вы должны иметь возможность создать собственный проект eclipse, запустив mvn eclipse:eclipse. Это работало относительно хорошо в последний раз, когда я пробовал это. Обратите внимание, что вам понадобится подключаемый модуль scala для Eclipse.

person Submonoid    schedule 17.09.2010
comment
Я могу создать проект Eclipse, особенно простой eclipse-IAM, но мне не очень повезло запустить приложение после добавления его в tomcat из eclipse. - person Marshmellow1328; 17.09.2010

Класс не найден звучит так, как будто война (взорванная или нет) не содержит банку scala или, возможно, банки лифта.

person Jim Barrows    schedule 21.09.2010