Как мне выложить свой репозиторий? - PullRequest
1 голос
/ 22 декабря 2009

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

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

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

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

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

Меня тянет к стандартной директории maven , но я не использовал ее раньше. Я придумал это:

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 - я адаптирую существующие скрипты ant, так как они работают. Я хотел бы сохранить возможность перехода на maven (или что-то вроде buildr, использующего макет maven) в будущем.

Итак:

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

Ответы [ 3 ]

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

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

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

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

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

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

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

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

0 голосов
/ 22 декабря 2009

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

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

0 голосов
/ 22 декабря 2009

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

...