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