2012-02-27 4 views
1

Я унаследовал большой проект с несколькими подпроектами. все они используют несколько файлов jar, все из которых расположены в каталоге lib каждого проекта. Я хочу взять все проекты и перенести их на maven, но зависимости - проблема (слишком много из них), некоторые из них - обычно используемые библиотеки (проекты apache, xerces, jms и т. Д.), А другие нет.Есть ли способ генерировать pom.xml с зависимостями от проекта eclipse?

есть способ автогенерировать зависимости maven для этих банок, которые можно найти в общедоступных хранилищах maven. например, см., что мой проект использует файл spice-jndikit-1.2.jar и автоматически получает подходящую depedency с группой, артефактом и (если возможно) версией?

спасибо

ответ

1

Я написал отличный скрипт для создания стартового набора файлов Apache ivy.

https://github.com/myspotontheweb/ant2ivy

В моем случае, я хотел "Maven-Изе" мой ANT строит без переключения полностью от ANT. Возможно продлить этот код для создания Maven POM, если люди заинтересовались этой функцией.

+0

Вы знаете, что это неплохо. В сочетании с руководством по API, которое предоставляет служба поиска (http://search.maven.org/#api), вы можете получить большую часть пути, если не по крайней мере получите список, который нужно быстро проверить. –

+0

@SpencerKormos Согласовано, это было целью написания сценария. На практике я обнаружил, что он отображает около 80% файлов jar проекта. Те, которые не совпадают, обычно являются либо программным обеспечением с закрытым исходным кодом, либо упакованными банками с открытым исходным кодом. Наконец, вы рекомендуете новый REST API поиска Maven Central. Это обеспечивается теми же людьми, которые размещают «repository.sonatype.org». Очевидно, что мой скрипт может переключаться, но я бы предпочел поддерживать совместимость с Nexus. Хостинг коммерческих банках в частной версии Nexus позволяет моему скрипту также найти их. –

+0

Кажется, это может помочь мне пройти через большую часть пути. благодаря! – santiagozky

0

Вы можете преобразовать проект в Maven, используя m2e плагин, но это стирает ваши ссылки банки, и не должен использоваться.

Я сомневаюсь, что такая вещь существует, так как типичные банки (если они сами не построены с Maven) не имеют необходимой информации, чтобы скорректировать groupId, artifactId и версию обратно в репозиторий, чтобы получить правильный путь.

Возможно, вы можете написать что-то, что анализирует имя файла для имени и версии, но у вас все еще есть путь к пакету, чтобы выяснить.

+0

Да, я боялся этого. это позорные банки не содержат дополнительной информации. – santiagozky

+0

Отметьте запись Марка выше. В сочетании с API поиска maven.org он может получить большую часть того, что я думаю. –

+0

да, я так думаю. спасибо – santiagozky

0

Если вы создаете Ant, вы также можете использовать Apache Ivy и его решение на основе файловой системы (очень быстрое и простое в настройке), чтобы вы начали, и медленно переходите к репозиториям Maven для артефакты, таким образом, вы не тратите много времени на поиски зависимостей Maven.

Смежные вопросы