Веб-сервисы Eclipse (java), какие файлы в версии и как правильно перенести проект на новый компьютер? - PullRequest
4 голосов
/ 15 марта 2012

Хорошо, у меня есть веб-сервис, созданный с использованием динамического веб-проекта eclipse.В настоящее время он используется в репозитории CVS, но используемая система управления версиями не имеет значения.В настоящий момент я буквально НИКОГДА не смог вытащить этот проект как есть и заставить его работать.Это приводит к бесчисленным ошибкам, которые нельзя исправить.Каждый раз, когда мне нужно поработать над этим веб-сервисом на новом компьютере, мне нужно создать совершенно новый динамический проект, скопировать исходные файлы, добавить все необходимые библиотеки и снова заставить сборку развертывания работать правильно.После того, как я наконец запустил его, я делюсь проектом с тем же, останавливаюсь через секунду, а затем снова синхронизируюсь (таким образом, затмевая мысль, что это был общий проект с самого начала).

Я чувствую себя как другиеДолжно быть, столкнулся с этой проблемой и нашел способ обойти ее.Итак, если у вас есть веб-сервис или какой-либо динамический веб-проект, какими файлами вы делитесь, и как вы успешно извлекаете его из хранилища и запускаете на другом компьютере, помимо того, что я сейчас делаю?

Ваша помощь очень ценится,

-Asaf

Редактировать: После прочтения некоторых ответов я чувствую, что этот вопрос на самом деле более специфичен для тех, кто использует WTP для создания / тестирования своих веб-сервисов.Просто хотел добавить пояснение.

Edit2: Позвольте мне также уточнить, что остальные 20 или около того проектов, не использующих WTP, распределяются просто отлично.Я могу вытащить и запустить их без проблем.Только проекты веб-сервисов являются проблемой.

Ответы [ 4 ]

2 голосов
/ 16 марта 2012

В общем, вы хотите включить все, что не является «производным» (сгенерированным или скомпилированным - обычно это содержимое каталога bin или другого места, где ваш код компилируется / встраивается).Для Java-проектов Eclipse вы хотите включить .project, .classpath, .settings и любые другие подобные файлы, которые веб-инструменты могут создавать для динамических веб-проектов.Eclipse CVS-клиент будет игнорировать файлы, помеченные как «Производные», поэтому вам не нужно сильно беспокоиться об этом.

Без подробного описания проблем, с которыми вы столкнулись, невозможно догадаться, что быловызывая их.Я могу только предположить, что, возможно, на разных компьютерах установлены разные версии Eclipse и / или WTP (Web Tools Platform).Это просто дикая догадка, но она может объяснить некоторую несовместимость, когда вы проверяете проект из CVS.

Итог, проверка в этих. * Файлах - это давно рекомендуемый подход от гуру Eclipse.Maven может что-то изменить, но вы не упомянули об этом, поэтому я предполагаю, что вы этим не пользуетесь.

2 голосов
/ 15 марта 2012

Я в основном делюсь своим опытом, может быть, вы можете найти какую-то помощь.

С концептуальной точки зрения, файлы, которые IDE может сгенерировать самостоятельно при создании нового проекта, не должны передаваться.Т.е. конкретные IDE-файлы не должны выдвигаться.И все, что IDE не может сгенерировать самостоятельно, должно быть выдвинуто.

Например, в случае затмения не следует выдвигать следующие файлы:

.settings
build
.classpath
.project

Для настройки проекта на новом компьютере,сначала вытащите файлы с сервера, а затем создайте проект из IDE, используя вытащенные файлы.

РЕДАКТИРОВАТЬ: Если в вашем проекте есть внешние jar / библиотеки, вам придется добавить в путь к классамвручную.Вы также можете нажать .classpath, но это может привести к ошибкам при создании нового проекта.

0 голосов
/ 26 марта 2012

Поскольку вы упоминали о необходимости добавления библиотек вручную, я предполагаю, что вы не используете какой-либо менеджер компоновки (например, maven или ant), кроме ecplise.

Для правильной обработки проекта ecplise вам нужны исходные файлы (* .java) в соответствующих каталогах, любые ресурсы, связанные с веб-службой (например, services.xml), ".project", ".classpath", ".settings" и др. файлы для затмения. Этого должно быть достаточно для затмения, чтобы сгенерировать что-то еще необходимое для построения проекта.

Любые файлы / каталоги, сгенерированные Eclipse в процессе сборки (например, каталог target & bin, * .class, * .war), должны быть отмечены , а не - они будут сгенерированы при необходимости. во время сборки.

Я думаю, что, поскольку вы добавляете необходимые сторонние файлы jar вручную, эти библиотеки могут находиться по разному пути между компьютерами (например, если путь содержит имя пользователя, он не будет передаваться на другой компьютер для другого компьютера). пользователь). Чтобы исправить это, вы можете настроить classpath, используя переменную classpath eclipse. В Preferences-> Java-> Build Path-> Classpath Variables установите переменную, связанную с «корневой» папкой, в которой хранится сторонний файл. Затем добавьте библиотеки в проект, используя эту новую переменную, а не их полный путь. Чтобы он работал на чужом компьютере, вам нужно всего лишь установить эту переменную classpath, чтобы путь к сборке указывал на правильные библиотеки.

Это может быть полезно, если вы перенесли свой проект из затмения только в менеджер сборки (например, maven), который позаботится о многих из этих проблем для вас. Eclipse может построить проект из конфигурации менеджера сборки, упрощая управление проектом.

0 голосов
/ 19 марта 2012

Я думаю, что проще всего использовать систему сборки и позволить IDE сгенерировать проект из вашей системы сборки.

Eclipse, Netbeans и Intellij довольно хороши в сборке проектов из файлов сборки maven или ant.С помощью этого решения вы получаете простую сборку, которую легко настроить в CI (Hudson, Bamboo и т. Д.), И вы не регистрируете какие-либо специфичные для IDE файлы. Если мое рабочее пространство полностью отличается от вашего, с разными версиями, плагинами,как бы то ни было, я не застрял с вашим файлом проекта, а вы не застряли с моим.Моя IDE создает проект, подходящий для моей среды, а ваша IDE делает то же самое для вашей.

...