Порядок начальной загрузки для простого проекта Maven в Eclipse и Subversion? - PullRequest
1 голос
/ 26 февраля 2011

Я нашел много информации в Интернете о необычных установках Maven, но, будучи новичком в Maven, это не совсем понятно для уровня «Привет, мир».

Цель: создать один простой проект Mavenиз Eclipse, и проверьте его в нашем хранилище Subversion.Проверьте правильность файлов и не включайте материалы, которые не следует регистрировать. Шаг 2 может привести к тому, что вторая рабочая станция Eclipse также будет работать в том же проекте.

Предостережения: Да, я относительно новичокв Maven.А не-maven начальная загрузка между Eclipse и SVN мне не всегда понятна на 100%.

Система:

  • OS X Snow Leopard со стандартным Java 1.6
  • Eclipse 3.6 и недавно установленные плагины
  • Subclipse и версия SVN Collab.net - работают
  • m2eclipse, также работают
  • Командная строка mvn работает, локальный репозиторий, может создавать проекты
  • Репозиторий Subversion через https

Я не буду утомлять вас всеми моими фальстартами, но это сводка текущего состояния:

  • Создал проект на нашем SVN-сервере с URL-адресом вида https://foo.com/svn/PROJECTONE/trunk
  • Создайте проект Maven из Eclipse, используя m2eclipse, против сражения с помощью инструмента командной строки (по крайней мере, во время обучения)
  • Начните с пустого рабочего пространства Eclipse и примите местоположение по умолчанию для нового проекта
  • Мастер создания проектов, проект maven, используя maven-archtype-quckstart, назовите его ProjectOne
  • В редакторе POM заполнитев SCM URL wih Subversion URL выше, https://foo.com/svn/PROJECTONE/trunk
  • Измените стандартную программу maven App.java, измените строку Hello World, убедитесь, что она работает

Вот некоторые вещи, которые я нахожу странными:(очевидно, я что-то неправильно понимаю)

  • В редакторе POM, теперь, когда я заполнил URL-адрес SCM для моего SVN-репозитория, я ожидал, что он предложит проверить мой код.Никакого предложения, и я не заметил никаких дополнительных опций.Вопрос: в чем смысл этого поля?Учитывая ориентированную на задачи концепцию maven и то, что она спрашивала о моем URL, не будет ли синхронизация файлов частью этого?
  • Я решил сделать это вручную, щелкнул правой кнопкой мыши по проекту и в разделе Teamрассказал ему об URL-адресе SVN, предупреждает, что каталог уже существует, я говорю «ОК», и каталоги теперь связаны.
  • Затем я запускаю процесс регистрации и замечаю, что Subclipse предлагает некоторые файлы.под .settings.Конечно, двоичные файлы рабочего пространства Ecliipse не должны регистрироваться, и похоже, что один из плагинов решил не включать каталог сборки (?), Но не уверен в этих файлах.Вопрос: В какой степени, если таковые имеются, Maven обновляет свойства svn: ignore?Или Subclipse обновляет svn: ignore, основываясь на настройках проекта Eclipse, поскольку у него есть знания обоих?

Общие вопросы:

  • Что было бы "лучшим"практика "для запуска одного нового проекта Maven в Eclipse и Subversion?Какие задачи выполняются первыми?
  • Какой будет «лучшая практика» для переноса этого проекта на вторую рабочую станцию ​​Eclipse, если в ней есть все плагины?
  • Какие плагины (m2eclipse, subclipse и т. Д.)) update svn: ignore?
  • Когда редактор POM спрашивает об URL-адресе SCM, для чего он использует эту информацию?
  • Должен ли я включить "trunk" в этот URL-адрес SCM?
  • Стоит ли включать имя проекта в URL-адрес SCM?
  • Должен ли я сначала создать каталог проекта в репозитории?Или я должен был позволить одному из плагинов создать его?
  • Распознают ли m2eclipse и subclipse друг друга?Или, может быть, более вероятно, что основные системы maven и subversion знают что-то друг о друге?Например, знает ли maven о svn: ignore?Я не ожидал бы, что Subversion узнает много о Maven, кажется, неправильное направление.

Извиняюсь за длинный пост, но все они в некоторой степени связаны и, возможно, дают лучший контекст о том, что может думать новый пользователь maven.

Ответы [ 2 ]

1 голос
/ 10 июня 2011

Какие плагины (m2eclipse, subclipse и т. Д.) Обновляют svn: ignore? рекомендую как m2eclipse, так и subclipse.

О svn ignore У вас есть два способа игнорировать сгенерированные затмением артефакты, когда вы проверяете источник:

  1. Использование Subclipse

    Щелкните правой кнопкой мыши -> Команда -> Установить свойство В введите свойство введите следующие свойства:

    • цель
    • .classpth
    • .settings
    • .project
    • .wtpmodules
  2. Использование Svn

    $ svn propset svn:ignore 'target .classpath .settings .project .wtpmodules' .
    $ svn commit -m"remove eclipse artifacts" .
    

Когда редактор POM спрашивает об URL-адресе SCM, для чего он использует эту информацию?

SCM может использоваться для целей отчетности или с плагином Maven Release. Плагин автоматизирует весь процесс выпуска.

Должен ли я сначала создать каталог проекта в репозитории? Или я должен был позволить одному из плагинов создать его?

Вы можете создать макет каталога, используя архетип, предоставленный плагином archetype:

0 голосов
/ 27 февраля 2011

Насколько я знаю ...

Maven почти не имеет ничего общего с SVN [РЕДАКТИРОВАТЬ: для вашей цели], на данный момент забудьте о Maven SCM, поскольку он вам сейчас не нужен.

Чтобы Maven и Eclipse работали вместе, вам нужно, чтобы они использовали один и тот же classpath и выходной каталог, и это то, что правильно настроенный плагин сделает для вас.Это также позволит вам выполнять задачи Maven (выполнение задач и т. Д.) Внутри Eclipse.

Клиент Subversion отслеживает внесенные вами изменения и позволяет выполнять задачу Subversion (синхронизация, обновление, извлечение, принятие и т. Д.).).Subclipse - это плагин Eclipse Subversion.

После того, как вы заставили Maven и Eclipse работать вместе, используйте SVN (Subclipse или что-то еще) для совместного использования файлов вашего проекта, включая pom.xml, .classpath, .project и, возможно, .settings, но исключая всепроизводные файлы (вывод компилятора и т. д.).

...