2009-12-22 2 views
1

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

Приложение само по себе имеет два компонента - разумно стандартный Java webapp, который ведет переговоры с базой данных, а также компонент backend, а также Java, который опроса db и запускает длительные задачи обработки на основе того, что он находит - по существу, БД используется в качестве очереди. Код разбит на три пакета:

  1. org.blah.common - код, такие как DAO,, что является общим для веб-приложений и задней части
  2. org.blah.webapp - веб-приложение; это зависит от org.blah.common и выстраивается в файл .war.
  3. org.blah.backend - Обратный процесс; это зависит от org.blah.common и выстраивается в файл tar, содержащий банку и некоторые скрипты.

Я также хотел бы получить другие биты конфигурации tomcat и apache в svn.

Прямо сейчас все три пакета находятся в svn под каталогом src, и есть сценарий муравья с разными целями, которые создают разные части. Все это немного скучно - свойство svn: ignore получило довольно большое значение, и сразу не видно, что сценарии в одном каталоге связаны с кодом в некотором пакете ниже src, а в другом - для запуска и остановки tomcat.

Я нарисован на maven standard directory layout, но я не использовал его раньше. Я придумал это:

common/ 
    src/ 
     main/ 
      java/ 
      resources/ 
     test/ 
      java/ 
      resources/ 
    target/ # Not checked in 
     common.jar 
webapp/ 
    src/ 
     main/ 
      java/ 
      resources/ 
      webapp/ 
     test/ 
      java/ 
      resources/ 
    target/ # Not checked in 
     webapp.war 
backend/ 
    src/ 
     main/ 
      java/ 
      perl/ 
      resources/ 
     test/ 
      java/ 
      resources/ 
    target/ # Not checked in 
     backend.tar 
infra/ 
    tomcat/ 
     bin/ 
     conf/ 
    apache/ 
     bin/ 
     conf/ 
db/ 
    tables/ 
    procs/ 
    triggers/ 

Обратите внимание, что сейчас я не собираюсь переходить на мавена - Я буду адаптировать существующий муравей скрипты, так как они работают. Я бы хотел сохранить возможность перехода на maven (или что-то вроде buildr, использующего макет maven) в какой-то момент в будущем.

Итак:

  • ли это, кажется, как разумный способ выложив хранилище? Есть ли что-нибудь, что повлечет меня за собой?
  • Это будет очевидно для людей, новых для приложения?
  • Будет ли это совместимо с maven, следует ли мне его использовать? (Я знаю, что теоретически вы можете сделать maven работать с любым макетом, но я считаю, что они рекомендуют стандарт по какой-то причине.)
  • Имеют ли IDE проблемы с этим? (В зависимости от того, на каком компьютере я нахожусь, я использую intellij или eclipse. Другие люди в моей команде, у которых, кстати, нет мнений по этому поводу, используйте netbeans.)

ответ

1
  • ли это, кажется, как разумный способ выложив хранилище? Есть ли что-нибудь, что повлечет меня за собой?

Ну, Maven захватывает лучшие отраслевые практики, в том числе макет, так что это, кажется, очень хороший выбор, даже если вы не используете Maven прямо сейчас. На самом деле, это рекомендуемая стратегия миграции при переходе с другой технологии на Maven: сначала перейдите к макету Maven и обновите существующие скрипты сборки, а затем представите Maven. В вашем случае, если все проекты имеют один и тот же жизненный цикл (если все они выпущены вместе), у меня нет никаких особых замечаний, кроме, может быть, об этом проекте, который не может управляться таким образом с Maven, но ничего не блокирует прямо сейчас.

  • Это будет очевидно для новичков в приложение?

Я нахожу это довольно ясно, и, честно говоря, если некоторые люди имеют проблемы с ним, и если они не могут приспособиться, может быть, это им, что нужно исправить :)

  • Будет ли это совместимо с maven, следует ли мне его использовать? (Я знаю, что теоретически вы можете сделать Maven работу с любым макетом, но я считаю, что они рекомендуют стандарт по причине.)

Это кажется почти полностью совместит с Maven (кроме инфры части, как я сказал, но это действительно не проблема). И да, это, очевидно, проще, если вам не нужно изменять конфигурацию Maven и использовать соглашения по умолчанию. Обратите внимание, что вы можете настроить сборку Maven параллельно с Ant build для беспрепятственного перемещения.

  • ли Иды будет иметь какие-либо проблемы с этим? (В зависимости от того, какой компьютер я на, я использую IntelliJ или затмение Другие люди в моей команде. - которые услужливо не имеют мнения по этому вопросу. - использование NetBeans)

Это было давно Я не импортировал проект Ant в одну из этих IDE, но я думаю, что все они должны иметь дело с этим макетом (на 100% уверены в использовании Maven). Лучшим способом ответить на этот вопрос было бы сделать некоторые тесты, конечно :)

+0

Звучит неплохо, спасибо. Протестировавшись с IntelliJ и Eclipse, они оба кажутся более или менее счастливыми. – Andy

+0

Фактически, Eclipse, IntelliJ и NetBeans могут обрабатывать этот макет без каких-либо ручных настроек, когда предоставляется pom.xml. Я просто не знаю, верно ли это при использовании только Ant. –

0

Единственная проблема, Я ожидаю, что каталоги src напрямую будут иметь исходный код внутри, а не как этот макет. Однако я думаю, что это способ думать, что я могу преодолеть довольно быстро, особенно в Eclipse.

0

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

Кроме этого, я не вижу никаких проблем с этим расположением. За исключением каталога tomcat, это стандартная компоновка maven.

+0

А, извините - они не зарегистрированы. Именно там они и заканчиваются. Я отредактирую вопрос, чтобы это было ясно. – Andy

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