Основной вопрос Subversion - PullRequest
1 голос
/ 13 июля 2010

Я создал проект Java в Eclipse, используя подход «сверху вниз» веб-сервисов (т. Е. Создав файл WSDL и используя его для генерации класса Skeleton Java и веб-сервисов с axis2) (следовательно, существует много автоматически сгенерированных файлов.и jar-библиотеки axis2).

Мой проект имеет следующую структуру файлов / каталогов

- Deployment Descriptor         
- build              
- build.xml                 
- doc (i.e. generated javadoc)         
- src     
  - com.package1
  - com.package2
  - Libraries
    - Apache Tomcat 6.0 (apache jar files)
    - Web App libraries (axis2 jar files)
- lib (containing external jar files)          
- resources     
- WebContent           
  - axis2-web           
  - META-INF    
    - MANIFEST.MF    
  - WEB-INF 
    - classes
    - conf
    - lib
    - modules
    - services
    web.xml
`- wsdl (contains WSDL file`)

Я хочу импортировать этот проект в хранилище Subversion на удаленном хосте.Какие файлы должны быть импортированы, чтобы кто-нибудь мог проверить этот проект и быстро его запустить?Насколько я понимаю, мы НЕ импортируем jar-файлы, файлы классов в хранилище Subversion.Какой должен быть лучший подход здесь?Я особенно не уверен во всех библиотеках axis2 и tomcat веб-приложения, а также в таких каталогах, как axis2-web, META-INF, WEB-INF (в WebContent)

Ответы [ 2 ]

1 голос
/ 13 июля 2010

Руководящие принципы, которые мы используем:

  • Фиксация всех файлов проекта
  • Не фиксировать файл, который может быть создан в среде IDE или создавать сценарии (временные файлы)
  • Не фиксируйте определенные файлы рабочей области, за исключением области «шаблона рабочей области», поскольку они обычно содержат машинные пути или данные
  • Разделяемые файлы должны быть в проекте "shared" или "lib"

Последний пункт похож на то, что делает maven: храните библиотеки не в каждом проекте, а в общей области.

Таким образом, применяя эти рекомендации к вашему проекту:

  • Дескриптор развертывания: коммит
  • сборка: не совершать (генерируется)
  • build.xml: commit
  • doc (т.е. сгенерированный javadoc): не фиксировать (сгенерированный)
  • ЦСИ
    • com.package1: коммит
    • com.package2: коммит
    • Библиотеки: фиксировать только каталог. Смотрите примечание ниже
    • Apache Tomcat 6.0 (файлы Apache JAR)
    • Библиотеки веб-приложений (файлы axis2 jar)
  • lib (содержащий внешние файлы jar): зафиксировать только каталог. Смотрите примечание ниже
  • ресурсы: коммит
  • WebContent
    • axis2-web: зафиксировать dir и содержимое, если есть что-то конкретное
    • META-INF
    • MANIFEST.MF: совершить
    • WEB-INF
    • классы: не фиксировать (генерируется)
    • конф
    • lib: коммит только если не сгенерирован. Это зависит от того, как вы настроили свои скрипты сборки
    • модулей: коммит (я думаю, он не сгенерирован)
    • services: commit (полагаю, он не генерируется) web.xml коммит - wsdl (contains WSDL file): совершить

Что касается каталогов lib, то, что мы делали в нескольких наших проектах перед использованием maven, заключалось в том, что каждый разработчик загружал необходимые jars / libs из центрального проекта "libs", который содержал jars в структуре каталогов, аналогичной тому, что maven делает (vendor / libs / versionar jars). Это помогло сократить время проверки проекта и избежать копирования библиотек по всем проектам.

Однако в других настройках это не проблема, и мы предпочли просто зафиксировать библиотеки в каталоге проекта "lib". Таким образом, каждая проверка заняла немного больше, всего несколько минут; Наличие копий библиотек не было проблемой, поскольку там было мало проектов, и это облегчало процесс оформления заказа (всего одна проверка, и все было готово).

Я не помню других указаний на данный момент:)

0 голосов
/ 13 июля 2010

Поскольку я не вижу pom.xml в вашем проекте, я предполагаю, что Maven не используется, и ваши библиотеки не могут быть автоматически загружены после проверки вашего проекта.Это просто означает, что вы должны поделиться всеми своими библиотеками через SVN .Единственная папка, которой я не поделился бы, - это 'doc' - они могут быть восстановлены.

ОБНОВЛЕНИЕ: окончательный способ - настроить ваш проект на использование системы управления зависимостями, такой как Maven или Ivy.Тогда вам не нужно хранить библиотеки - это ваша система управления исходным кодом, и люди, проверяющие ваш проект, смогут быстро его запустить.

...