Используя Maven, Git: Как мне пометить последнюю версию моего кода? - PullRequest
12 голосов
/ 18 января 2012

Я использую Maven 3.0.3 с Git.Я использую инструмент интеграции (Bamboo), чтобы извлечь ветку кода из Git в каталог.Затем инструмент использует Maven для запуска стандартного жизненного цикла сборки (компиляция, тестирование, развертывание).Что я хочу, так это то, что если моя задача развертывания Maven выполнена успешно, я хочу пометить версию моего кода, которая была проверена в Git.Как я могу сделать это от Maven?Мы ценим любые примеры конфигураций, которые вы можете предоставить.

Ответы [ 4 ]

6 голосов
/ 18 января 2012

Используйте maven scm plugin . См. Функциональность тега в расширенных функциях , которые должны иметь отношение.

Теперь поддержка git не входит в комплект поставки, поэтому вам понадобится зависимость от maven-scm-provider-gitexe . Кроме того, чтобы преодолеть проблему исключение сплетения , вам также необходимо добавить зависимость в более позднюю версию сплетения.

Вот что у меня сработало:

<project>
    <scm>
      <connection>scm:git:https://username@github.com/my-project.git</connection>
      <developerConnection>scm:git:https://username@github.com/my-project.git</developerConnection>
    </scm>
    <!-- snip -->
    <build>
      <plugins>
       <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-scm-plugin</artifactId>
         <dependencies>
            <dependency>
               <groupId>org.codehaus.plexus</groupId>
               <artifactId>plexus-utils</artifactId>
               <version>2.1</version>
            </dependency>
            <dependency>
               <groupId>org.apache.maven.scm</groupId>
               <artifactId>maven-scm-provider-gitexe</artifactId>
               <version>1.2</version>
           </dependency>
         </dependencies>
        <version>1.0</version>
        <configuration>
          <tag>test</tag>
          <connectionType>connection</connectionType>
        </configuration>
        <executions>
          <execution>
          <id>tag</id>
          <phase>deploy</phase>
          <goals>
            <goal>tag</goal>
          </goals>
          </execution>
        </executions>
       </plugin>
     </plugins>
    </build>
    <!-- snip -->
</project>
2 голосов
/ 18 января 2012

Плагин maven-release-plugin может сделать это за вас - посмотрите пример здесь: http://maven.apache.org/plugins/maven-release-plugin/examples/prepare-release.html

1 голос
/ 29 октября 2014

maven-release-plugin нужно только объявить scm:

<scm>
    <url>https://github.com/username/repoName</url>
    <connection>scm:git:git://github.com/username/repoName.git</connection>
    <developerConnection>scm:git:git@github.com:username/repoName.git</developerConnection>
    <tag>HEAD</tag>
</scm>

генерация ключей git ssh

https://help.github.com/articles/generating-ssh-keys/

и запустите Mvn Release: подготовьте

больше от https://github.com/kevinsawicki/github-maven-example

0 голосов
/ 01 июня 2014

Я рекомендую небольшой проект с открытым исходным кодом, частью которого я являюсь - он называется Quicktag и работает с парой VCSes - https://code.google.com/p/quicktag-maven-plugin. Добавьте плагин, и он сгенерирует класс Java со статическими полями, которые содержат информацию о сборке.

...