Я бы рекомендовал использовать признанный инструмент CI для управления этим, поскольку для CI есть нечто большее, чем просто сборка.
Но если вы полны решимости бросить свой собственный, вы можетеиспользуйте некоторые цели из maven-scm-plugin и запишите выходные данные.
Предполагая, что у вас есть локальная копия проекта, и у вас есть доступ к pom, вы можете запустить команду status, чтобы проверитьизменения и анализ выходных данных, проверяя наличие изменений. Цель использования:
mvn scm:status
Если вы видите какие-либо измененные файлы, вы можете проверить изменения и вызвать сборку. Остерегайтесь, однако, есть ошибка в maven-scm-provider-svn текст ссылки , которая означает, что измененные файлы могут быть пропущены! Возможно, вам лучше напрямую вызывать Subversion и анализировать его выходные данные.
Например, приведенный ниже пример очистит предыдущую сборку, извлечет любое измененное содержимое и запустит цель развертывания.
mvn clean scm:checkout deploy
Если у вас нет рабочей копии проекта, вы можете использовать цель scm: bootstrap для ее получения. Если вы настроили некоторые свойства в pom, вы можете повторно использовать pom для начальной загрузки нескольких проектов.
Например, приведенный ниже pom может загрузить любой проект, если вы передадите ему соответствующие аргументы командной строки:
mvn scm:bootstrap -DscmUserName=me -DscmPassword=mypass -DscmConnectionUrl=scm:svn:http://myserver/myproject/trunk
<project>
[...]
<packaging>jar</packaging>
<version>0.0.1</version>
<name>SCM bootstrapper</name>
<url>http://somecompany.com</url>
<scm>
<connection>${scmConnectionUrl}</connection>
<developerConnection>${scmDeveloperConnectionUrl}</developerConnection>
<url>${scmUrl}</url>
<scm>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.0</version>
<configuration>
<goals>install</goals>
<username>${scmUsername}</username>
<password>${scmPassword}</password>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
<properties>
<scmDeveloperConnectionUrl>dummy</scmDeveloperConnectionUrl>
<scmConnectionUrl>dummy</scmConnectionUrl>
<scmUrl>dummy</scmUrl>
<scmUsername>dummy</scmUsername>
<scmPassword>dummy</scmPassword>
</properties>
</project>
Чтобы Maven работал с Subversion, вам нужно настроить scm раздел POM:
<scm>
<connection>scm:svn:http://path/to/project</connection>
<developerConnection>scm:svn:http://path/to/project/tags/version</developerConnection>
<url>scm:svn:http://path/to/project/tags/version</url>
</scm>
В качестве альтернативы опросу изменений, рассмотрите возможность добавления подключите к Subversion , чтобы сборка запускалась при внесении изменений. Есть другой вопрос , который может дать вам указатель на это.