Преобразование существующего проекта Eclipse в проект Maven

Для проекта на работе мы рассматриваем возможность использования плагина Maven для Eclipse для автоматизации наших сборок. Сейчас процедура намного сложнее, чем она должна быть, и мы надеемся, что Maven упростит работу с одним щелчком мыши.

Мой вопрос: есть ли мастер или автоматический импортер для преобразования существующего проекта Java Eclipse в проект Maven, используя плагин Maven? Или я должен создать новый проект Maven и вручную скопировать все исходные файлы, библиотеки и т.д.

Ответ 1

Если вы просто хотите создать POM по умолчанию и включить функции m2eclipse: поэтому я предполагаю, что в настоящее время у вас нет альтернативной автоматической установки сборки, которую вы пытаетесь импортировать, и я предполагаю, что вы говорите о плагин m2eclipse.

Плагин m2eclipse предоставляет возможность щелчка правой кнопкой мыши в проекте, чтобы добавить этот pom.xml по умолчанию:

Новые версии M2E

Щелкните правой кнопкой мыши Project → подменю Configure → Convert to Maven Project

Старые версии M2E

Щелкните правой кнопкой мыши Project → подменю Maven → Enable Dependency Management.

Это сделает необходимый для включения плагина для этого проекта.


Чтобы ответить на , есть ли автоматический импортер или мастер? ': не то, что я знаю. Использование вышеописанного варианта позволит вам включить плагин m2eclipse для вашего существующего проекта, избегая ручного копирования. Вам все равно нужно будет настроить зависимости и другие материалы, необходимые для создания.

Ответ 2

Начните с m2e 0.13.0 (если не раньше), вы можете преобразовать проект Java в проект Maven из контекстного меню. Вот как:

  • Щелкните правой кнопкой мыши проект Java, чтобы открыть контекстное меню
  • Выберите Настроить > Преобразовать в проект Maven

Вот подробные шаги с снимками экрана.

Ответ 3

У меня была такая же проблема, и мне хотелось создать Mavenise всю рабочую область eclipse, содержащую около 60 проектов Eclipse. Для этого вручную потребовалось много времени, и альтернативные варианты были не такими жизнеспособными. Чтобы решить проблему, я наконец создал проект под названием eclipse-to-maven в github. Поскольку eclipse не имеет всей необходимой информации о зависимостях, он делает следующее:

  • Основываясь на <classpathentry/> XML-элементах в файле .classpath, он создает зависимости от другого проекта, идентифицирует файл jar библиотеки и на основе его имени (например, jakarta-oro-2.0.8.jar) идентифицирует его версии. В настоящее время artifactId и groupId такие же, как я не мог найти что-то, что могло бы вернуть мне Maven groupId зависимости на основе artifactId. Хотя это не идеальное решение, оно обеспечивает хорошую основу для ускорения Mavenisation.

  • Он перемещает все исходные папки в соответствии с соглашением Maven (например, src/main/java)

  • Поскольку проекты Eclipse, имеющие имена с пробелами, трудны для работы в среде Linux/Unix, он также переименовывает их с именами без пробелов.

  • Результирующие файлы pom.xml содержат зависимости и базовую структуру pom. Вы должны добавить необходимые плагины Maven вручную.

Ответ 4

Щелкните правой кнопкой мыши по названию проектa > "Настроить" > "Преобразовать в проект Maven" > нажмите "Готово". Здесь вы можете добавить некоторые зависимости для загрузки и добавления ожидаемого файла jar.

Это создаст автоматически сгенерированный файл pom.xml. Откройте этот файл в формате xml в редакторе eclipse. После тега build (</build>) добавьте свои зависимости, которые вы можете скопировать с веб-сайта maven, и добавьте их туда. Теперь вам хорошо идти. Эти зависимости автоматически добавят ваши необходимые файлы jar.

Ответ 5

Ответ Чэндуна правильный, вы должны использовать Configure>Convert to Maven Project. Тем не менее, я должен добавить, что процесс конверсии был значительно улучшен, поскольку m2e 0.13.0: m2e 1. 1+ и m2e-wtp 0.16. 0+ теперь может преобразовать существующие настройки затмения в конфигурацию плагина maven.

Что касается вопроса преобразования зависимостей, вы можете попробовать использовать функцию интеграции JBoss Tools (JBT) 4.0 Maven, которая содержит экспериментальный мастер преобразования, подключенный к процессу преобразования m2e: http://docs.jboss.org/tools/whatsnew/maven/maven-news-4.0.0.Beta1.html.

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

Кроме того, FYI, вот некоторые идеи для улучшения процесса преобразования m2e, рефакторинг для использования макета Maven, скорее всего, будет реализован в будущем.

JBT 4.0 (требуется Eclipse JavaEE Juno) может быть установлен с http://download.jboss.org/jbosstools/updates/stable/juno/ или с Eclipse Marketplace

Ответ 6

Это необходимо, потому что, более или менее, когда мы импортируем проект из git, это не проект maven, поэтому зависимости maven не находятся в пути сборки.

Вот что я сделал, чтобы превратить общий проект в проект maven.

общий проект → проект java щелкните правой кнопкой мыши проект, свойства- > грань проекта, нажмите "java". Этот шаг превратит общий проект в проект java.

Проект java → проект maven проект правой кнопкой мыши, configure → convert to maven project В настоящий момент зависимости maven lib все еще не находятся в пути сборки. свойства проекта, путь сборки, добавить библиотеку, добавить зависимости maven lib

И подождите несколько секунд, когда загружаются зависимости, проект готов!

Ответ 7

Существует программа командной строки для преобразования любого Java-проекта в проект SBT/Maven.

Он разрешает все банки и пытается выяснить правильную версию, основанную на контрольной сумме SHA, пути к классам или имени файла. Затем он пытается скомпилировать источники, пока не найдет рабочую конфигурацию. Пользовательские задачи, выполняемые для каждой конфигурации зависимостей, также могут быть указаны.

UniversalResolver 1.0
Usage: UniversalResolver [options]

  -s <srcpath1>,<srcpath2>... | --srcPaths <srcpath1>,<srcpath2>...
        required src paths to include
  -j <jar1>,<jar2>... | --jars <jar1>,<jar2>...
        required jars/jar paths to include
  -t /path/To/Dir | --testDirectory /path/To/Dir
        required directory where test configurations will be stored
  -a <task1>,<task2>... | --sbt-tasks <task1>,<task2>...
        SBT Tasks to be executed. i.e. compile
  -d /path/To/dependencyFile.json | --dependencyFile /path/To/dependencyFile.json
        optional file where the dependency buffer will be stored
  -l | --search
        load and search dependencies from remote repositories
  -g | --generateConfigurations
        generate dependency configurations
  -c <value> | --findByNameCount <value>
        number of dependencies to resolve by class name per jar

https://bitbucket.org/mnyx/universalresolver

Ответ 8

Мой вопрос: есть ли мастер или автоматический импортер для преобразования существующего проекта Java Eclipse в проект Maven, используя плагин Maven?

Насколько я знаю, нет ничего, что могло бы автоматически преобразовать проект Eclipse в проект Maven (т.е. изменить макет, создать POM, "сгенерировать" и передать его метаданными, обнаружить библиотеки и их версии, чтобы добавить их к ПОМ и т.д.). Eclipse просто не хватает метаданных, чтобы сделать это возможным (это точно точка POM) и/или создать достойный результат.

Или мне нужно создать новый проект Maven и вручную скопировать все исходные файлы, библиотеки и т.д.

Это было бы лучшим вариантом, на мой взгляд. Создайте проект Maven, скопируйте/переместите источники, ресурсы, тесты, испытайте ресурсы в соответствующие каталоги, объявить зависимости и т.д.

Ответ 9

Для преобразования в Gradle является аналогом Maven:

Щелкните правой кнопкой мыши Project → подменю Configure → Convert to Gradle (STS) Project