Eclipse, Ant & Mercurial с несколькими (под) проектами - PullRequest
4 голосов
/ 27 мая 2011

Еще один вопрос о нескольких проектах, я знаю.Я видел (противоречивые) ответы на подмножества моих целей, но ничего такого, что могло бы их охватить. Я новичок в затмении и не знаю грязных деталей hg.

Учитывая общую библиотечную флягу, два приложения и некоторые распространенные скрипты муравья ...

Я бы настроил это

/top/
    build-common/
    lib1/
    app1/
    app2/

Я читал, что eclipse не выполняет подпроекты, поэтому я думаю, что это будет 4 проекта Eclipse, а "top" - это ничего не затмевать.

Я читал, как использовать ant для сборок eclipse, включая автоматическую сборку.

  • Это хорошая практика для 3-х java-проектов ссылаться на ../build-common/ndomscripts} вих build.xmls?(когда это другой проект затмения)
  • Должны ли ссылки на app1 и app2 ссылаться ../lib1/target/lib.jar?Как?
  • Если ant выполняет сборку eclipse, я все еще поддерживаю .classpath (через какой-либо графический интерфейс пользователя?),Правильно?

Мне неясно, если 4 проекта затмения приводят к 4 проектам ртути. ЕСЛИ плагин mercurialeclipse поддерживает его, я мог бы сделать его одним проектом hg ("top").Но я не уверен в плюсах и минусах.Team-> Commit может повлиять на другие проекты Eclipse. Может ли это показаться пользователю Eclipse неправильным?

  • Итак, проекты 4 или 1 hg?

Pre-eclipseОбычно у меня есть файл build.xml верхнего уровня, который создает подпроекты.Даже если это не нужно для сборок eclipse, я хочу поддерживать полную сборку из командной строки.

  • Куда пойдет build.xml верхнего уровня?

Кроме того, я подозреваю, что существуют некоторые нюансы между тем, что ваш код фактически находится в каталоге / рабочей области или нет.Кто-нибудь может объяснить, что это значит для моего макета?

Большое спасибо!

tlc

1 Ответ

0 голосов
/ 24 апреля 2012

Я делал подобные вещи с CVS, но я не уверен, как с Mercurial. (Я тоже хочу перейти на Mercurial)

Я могу ответить на часть ваших вопросов.

С CVS я бы создал один проект Eclipse для / top / и вставил в него различные модули в виде подкаталогов. Я не знаю, поддерживает ли MercurialEclipse суб-репо или нет, но это будет мой первый выбор (1 проект Eclipse, вытащите суб-репо)

Я думаю, что для каждого сценария ant нормально ссылаться на build-common, если между / app1 и / app2 существует много зависимостей. Другой вариант - создать файл build.xml в / app1, / ​​app2, затем основной файл build.xml в / build-common, который просто вызывает / app1 и / app2, а затем завершает все.

Если вы используете скрипт Ant, вам также придется вручную управлять путем к классу Eclipse. Это не так сложно в моем опыте. Если в Eclipse настроен classpath, автоматическая сборка будет работать просто так.

Я бы предпочел иметь такую ​​структуру:

/top/
/top/build.xml (references /app1/build.xml, /app2/build.xml)
/lib1
/app1/
/app1/build.xml (references ../lib1)
/app2
/app2/build.xml  (references ../lib1)

Самый большой вопрос - это MercurialEclipse и суб-репо. Однако, если он не поддерживает суб-репо, просто используйте Hg из командной строки, пока он не догонит.

...