Выпуск знатока через Гудзон

В меню находится в правом верхнем углу окна Project, снимите отметку Show members.

11
задан seanf 22 January 2013 в 00:20
поделиться

4 ответа

I have tended to do the releases always by hand for a few reasons. First if you have to roll back it's easier when you can go back to the original release location and do it. Secondly because you need to resolve all snapshot dependencies as part of the process.

Our development process has us leaving dependencies external to the current build at the previous release version until a fix requires an upgrade. This means that if I'm releasing Nexus, Maven, etc, then I see snapshots and it means I have to go off and release those first. This process isn't really possible to automate since it varies based on what's changed since the last release.

That said, we have a special machine (at Sonatype it's just a vm) setup only for builds. This is done to guarantee no environmental changes occur that could influence a build accidentally (like a jdk change). It also makes it easier for anyone to pick up the release process because it's always ready to go.

8
ответ дан 3 December 2019 в 10:05
поделиться

I've always triggered a release manually with obvious pros and cons :-)

0
ответ дан 3 December 2019 в 10:05
поделиться

Мы экспериментировали с плагином выпуска Hudson Maven, хотя я немного затрудняюсь заставить его должным образом указывать на выпуски без таких зловредных вещей, как жесткое кодирование паролей в наши файлы сборки.

0
ответ дан 3 December 2019 в 10:05
поделиться
__attribute__((visibility("default")))

И нет эквивалента __ declspec (dllimport) , насколько мне известно.

#if defined(_MSC_VER)
    //  Microsoft 
    #define EXPORT __declspec(dllexport)
    #define IMPORT __declspec(dllimport)
#elif defined(__GNUC__)
    //  GCC
    #define EXPORT __attribute__((visibility("default")))
    #define IMPORT
#else
    //  do nothing and hope for the best?
    #define EXPORT
    #define IMPORT
    #pragma warning Unknown dynamic link import/export semantics.
#endif
-121--1238895-

Erm на основе этого и этого контрольного символа ACK является абсолютно одинаковым в обоих кодировках. Разница, на которую вы указали ссылку, заключается в том, что DOS/Windows на самом деле имеет символы для большинства управляющих символов в Windows-1252 (например, символы и аналогии Heart/Club/Spade/Diamond), а ISO-8859 нет.

-121--2251942-

Недавно в мое поле зрения попал плагин m2lease. Казалось, это мило. Хотя, я бы хотел, чтобы мой процесс освобождения был полностью «pom-tweking-free». Я имею в виду, что мы должны предоставить 4 входных параметра для обработки полной версии:

  1. версия версии (например, 1.0.0)
  2. новая версия разработки (например, 1.0.1-SNAPSHOT)
  3. тэг версии в SCM (например, release-1.0.0 или 1.0.0)
  4. базовый путь тэга в SCM

Первые 2 имеют приемлемые значения по умолчанию. Версия, ударяющая по цифре версии исправления ошибок, идеально подходит для меня.

Номер 4 может быть указан в поле pom. Он не изменится.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <configuration>
        <tagBase>https://example.com/svn/myProject/releases</tagBase>
    </configuration>
</plugin>

Это третья, которая мешает мне полностью автоматизировать выпуск при нажатии кнопки. Метка тэга выпуска по умолчанию не будет для нас, поэтому мы должны указать ее:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <configuration>
        <tag>release-${pom.version}</tag>
        <tagBase>https://example.com/svn/myProject/releases</tagBase>
    </configuration>
</plugin>

Теперь, хотя это может быть именно то, что мне нужно, я в конечном итоге имею svn тэг с -SNAPSHOT в конце.: (Поэтому я должен передать параметр тэга в конфигурации задания Hudson. Кроме того, я должен пойти изменить его для каждого выпуска мы делаем... это не совсем то, что мне нужно.


Итак, в конце концов, наличие проекта типа maven2 в hudson + плагин m2lease hudson + правильно сконфигурированный плагин maven release является матерью всего процесса выпуска, который я видел до сих пор. Хотя это не идеально, это спасло мне много усердной работы.

JS.

2
ответ дан 3 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: