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

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

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

9 ответов


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

плагин m2eclipse предоставляет опцию правой кнопкой мыши на проекте, чтобы добавить этот POM по умолчанию.XML-код:

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

щелкните правой кнопкой мыши на Project - > подменю Configure - > конвертировать в Maven Проект

более старые версии M2E

щелкните правой кнопкой мыши проект - > подменю Maven - > включить управление зависимостями.

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


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


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

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

здесь подробные инструкции снимки экрана.


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

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

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

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

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


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

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


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

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

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

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

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


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

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

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

проект java --> проект maven щелкните правой кнопкой мыши проект, настроить-->преобразовать в проект maven На данный момент зависимости Maven lib все еще не находятся в пути сборки. свойства проекта, Путь сборки, добавить библиотеку, добавить зависимости maven lib

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


существует программа командной строки для преобразования любого проекта 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


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

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


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

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

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

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