Пример проверки Maven SVN

122
11

Относительно моего предыдущего вопроса → Есть ли SVN Maven?, я перешел на страницу использования → http://maven.apache.org/scm/maven-scm-plugin/usage.html не нашел то, что я искал, вот что я хотел бы сделать:


    Список проектов, которые я указываю для ex:

http://mysvnurl/myprojectname, где я мог бы параметризовать имя проекта


Тогда давайте скажем, если есть 3-4 или n количество подпроектов (модулей) (для которых я также могу указать имена), которые я хочу проверить, и что я могу указать ветвь (trunk) и ревизию, Чтобы упростить:


    Оформить заказ некоторых субпроектов (модулей) trunk myprojectname

Пример:


http://mysvnurl/myprojectname/project1/trunk/ *//получить все
http://mysvnurl/myprojectname/project2/trunk/ *//получить все


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


Спасибо

спросил(а) 2021-01-19T16:43:24+03:00 2 месяца, 3 недели назад
1
Решение
130

Maven SCM Plugin, о котором я упомянул в предыдущем вопросе , является альтернативой задаче SvnAnt в том смысле, что он позволяет взаимодействовать с репозиторием Subversion (среди прочих) с Maven или плагинами (например, плагин release). Но я думаю, что я пропустил то, что вы хотите сделать точно.


Итак, вернемся к этому вопросу, вот как вы могли бы использовать scm:checkout в CLI:


mvn scm:checkout -DconnectionUrl=scm:svn:https://svn.dev.java.net/svn/glassfish-svn/trunk/v3 -DcheckoutDirectory=v3

И мы могли бы представить все это в POM и объявить эти параметры в configuration плагина (или в нескольких execution, если вам нужно обрабатывать несколько URL-адресов). И, возможно, вы даже можете играть с некоторыми excludes или includes (которые теперь соблюдаются, см. SCM-526 ).

...
<execution>
<id>perform-checkout</id>
<configuration>
<connectionUrl>myUrl</connectionUrl>
<checkoutDirectory>myDirectory</checkoutDirectory>
<excludes>folder1/*,folder2/*</excludes>
</configuration>
<phase><!-- some phase --></phase>
<goals>
<goal>checkout</goal>
</goals>
</execution>
...

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


И чем больше я смотрю на ваш вопрос, тем больше я думаю, что svn:externals (т.е. функция Subversion) - это то, что вы после. Это то, что я использую, чтобы делать проверки сложных проектов с несколькими соединительными линиями в одной команде.

ответил(а) 2021-01-19T16:43:24+03:00 2 месяца, 3 недели назад
86

Многомодульная сборка обычно требует, чтобы дочерние модули содержались внутри каталога родительского модуля. Но, похоже, Хадсон/Дженкинс не может создать такую ​​структуру, если все модули не находятся в одном дереве в SCM. Для моего проекта это не так. Многие из детей находятся в отдельных деревьях scm (на github). Было бы очень полезно, если бы maven мог создать структуру. Он должен иметь возможность сделать это, учитывая только родительский pom, потому что дети не видны, пока они не были извлечены из scm.

ответил(а) 2021-01-19T16:43:24+03:00 2 месяца, 3 недели назад
62

Ваш проект организован следующим образом?


 root (pom.xml)
+--- Module1 (pom.xml)
+--- Module2 (pom.xml)

Есть ли у вас многомодульная сборка?


Во-первых, почему вы хотите проверить через Maven? Пусть серверы Build выполняют эту работу или вашу среду IDE...

ответил(а) 2021-01-19T16:43:24+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема