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

242

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

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

  • 3
    Использует ли ваша существующая сборка сценарий Ant?
  • 4
    Вы, вероятно, должны поменять принятый ответ
Теги:
maven-2

9 ответов

139
Лучший ответ

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

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

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

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

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

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

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


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

  • 0
    Хотя он включает M2Eclipse, на самом деле он не является мастером, не импортирует существующий проект Eclipse. Скорее, он дает пользователю возможность выбора зависимостей и т. Д., Что может быть сложно, если пользователь не имеет большого опыта работы с Maven.
  • 0
    Я интерпретировал вопрос как «мне нужно создать новый проект и вручную скопировать материал, чтобы использовать плагин m2eclipse?», Поясню я.
Показать ещё 8 комментариев
303

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

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

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

  • 29
    Это все еще не создает структуры каталогов и не добавляет зависимости в pom.
  • 2
    будет ли это работать с проектами Android в Eclipse?
Показать ещё 5 комментариев
11

У меня была такая же проблема, и мне хотелось создать 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 вручную.

  • 0
    Интересно ! Это портировано на Луну? Будет ли проект по-прежнему проектом затмения (допустимые .classpath и .project )? Не могли бы вы добавить в свой ответ, как использовать ваш плагин для создания простого проекта JavaSE - и каковы будут реальные изменения в структуре каталогов?
  • 0
    Извините, но я не знаю, что такое Луна. Это больше не будет действительным проектом затмения, так как структура каталога проекта будет изменена. Однако создать измененные конфигурации затмения с помощью Maven легко. Это не плагин, а инструмент. Как его запустить, уже упоминалось в README проекта. Структура каталогов преобразуется в конвенцию Maven. Так что все источники идут, например, в src / main / java.
Показать ещё 1 комментарий
7

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

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

  • 1
    Это создаст структуру папок maven?
  • 0
    @Mr_and_Mrs_D: нет
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

4

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

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

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

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

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

2

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

  • 0
    Это выглядит как очень привлекательный вариант. Но, поскольку это в настоящее время упаковано, это не очень доступно. Не ясно, как упаковать и развернуть исходный код. Большинство разработчиков Java не являются разработчиками Scala, и SBT не является широко используемым инструментом в сообществе.
1

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

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

  • 3
    Ответ не имеет отношения к вопросу
  • 1
    Я нашел этот вопрос, ища Gradle, во многих случаях полезно добавлять ответы для других ОС, а не для заданных ОС, поскольку для отдельного случая не существует вопроса. Что касается Gradle, я бы не стал создавать новый вопрос, чтобы ответить на то, что считаю полезным, скорее я отправлю это. С уважением.
1

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

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

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

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

  • 0
    Все еще правда сейчас?
  • 0
    Почему этот ответ выше, чем ответ +199? Я почти не видел этого

Ещё вопросы

Сообщество Overcoder
Наверх
Меню