1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/osglworks-java-osgl-bootstrap

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

OSGL Bootstrap

APL v2 Maven Central Build Status codecov Javadocs

A minimum set of utilities required by all other OSGL Java libraries.

  • Version tool: позволяет библиотеке OSGL и любому другому Java-приложению создавать информацию о версии во время выполнения на основе их сборки Maven.

Установка

Добавьте следующую зависимость в файл pom.xml:

<dependency>
    <groupId>org.osgl</groupId>
    <artifactId>osgl-bootstrap</artifactId>
    <version>${osgl-bootstrap-version}</version>
</dependency>

[Version tool] Подготовка информации о версии

Для автора библиотеки или приложения необходимо подготовить информацию о версии, чтобы инструмент Version мог генерировать версию во время выполнения.

Предположим, что имя пакета вашей библиотеки или приложения — org.mrcool.swissknife, вам нужно добавить файл с именем .version в каталог src/resources/org/mrcool/swissknife. Содержимое файла должно быть следующим:

# artifact является необязательным, если не указан, будет использоваться имя пакета
artifact=<delivery-name>

# версия является обязательной, если не указана, будет возвращено значение UNKNOWN
version=<версия проекта>

# номер сборки является необязательным, если не указан, будет использована пустая строка
build=<номер сборки SCM, например, git hash>

В качестве хорошей практики вы можете положиться на фильтрацию ресурсов Maven для автоматического создания версии и номера сборки для вас, в этом случае ваш файл .version будет выглядеть так:

artifact=${project.artifactId}
version=${project.version}
## номер сборки является опциональным
build=${buildNumber}

Где ${project.artifactId} и ${project.version} берутся из стандартной среды Maven, а ${buildNumber} — из плагина maven buildnumber (http://www.mojohaus.org/buildnumber-maven-plugin/).

Примечание: чтобы использовать переменные среды Maven в файле .version, необходимо включить фильтр в плагине ресурсов:

<resources>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
    <includes>
      <include>**/.version</include>
    </includes>
   </resource>
</resources>

[Version tool] Получение информации о версии во время выполнения

После того как вы подготовили файл .version и упаковали его в jar-файл, пользователь jar-файла всегда может получить доступ к информации о версии через простой вызов API:

Version version1 = Version.of(org.mrcool.swissknife.SwissKnife.class);
System.out.println(version1.getPackage()); // print `org.mrcool.swissknife`
System.out.println(version1.getArtifactId()); // print `swissknife`
System.out.println(version1.getProjectVersion()); // print `1.0`
System.out.println(version1.getBuildNumber()); // print `ebf1`
System.out.println(version1.getVersion()); // print `r1.0-ebf1`
System.out.println(version1); // print `swissknife-r1.0-ebf1`

// Другой способ получения информации о версии
Version version2 = Version.of("org.mrcool.swissknife.db");

// Если версия определённой библиотеки SNAPSHOT, например 1.0-SNAPSHOT,
// то тег версии украшается символом `v` вместо `r`:
System.out.println(version2.getProjectVersion()); // print `1.0-SNAPSHOT`
System.out.println(version2.getBuildNumber()); // print `51b9`
System.out.println(version2.getVersion()); // print `v1.0-SNAPSHOT-51b9`
System.out.println(version2); // print `swissknife-v1.0-SNAPSHOT-ebf1`

Советы: если приложению или библиотеке необходимо определить собственную версию, есть более короткий путь:

package com.myproj;

public class Foo {
    public Version version() {
        // нормальный способ получить версию Foo:

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/osglworks-java-osgl-bootstrap.git
git@api.gitlife.ru:oschina-mirror/osglworks-java-osgl-bootstrap.git
oschina-mirror
osglworks-java-osgl-bootstrap
osglworks-java-osgl-bootstrap
master