Версии в Java - PullRequest
       25

Версии в Java

4 голосов
/ 18 ноября 2010

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

Как вы, люди, делаете это? Мы используем Maven, могу ли я как-нибудь повторно использовать версию, определенную в pom.xml? Мне также было бы интересно узнать, как это обычно делается с Ant.

Ответы [ 3 ]

5 голосов
/ 18 ноября 2010

Вы можете получить версию jar для Maven, загрузив файл pom.properties.Это автоматически создается Maven в банках.

Должен быть расположен внутри банки, по этому пути

META-INF\maven\{groupId}\{artifactId}\pom.properties

Здесь упоминается чуть больше здесь

3 голосов
/ 18 ноября 2010

Базовое решение: Maven записывает информацию о версии в Manifest.xml внутри jar.Прочитайте эту банку с Java и извлеките эту информацию.

  1. Вынудите maven создать более подробный манифест .

  2. Читатьфайл jar из java:

    Manifest manifest = new JarFile("path/to/your.jar").getManifest();
    String version = manifest.getAttributes().getValue("Specification-Version:");
    
  3. Если вам нужно найти местоположение вашей банки:

    MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath();
    
1 голос
/ 18 ноября 2010

У нас большая команда разработчиков, поэтому для нас более полезно точно знать, какая сборка из данного целевого выпуска мы запускаем или о котором говорим. Вот почему вы увидите, как люди включают номер сборки в информацию о своей версии. Лично это произвольная метка, и отметка времени сборки в формате ГГГГММДЧЧммсс (или аналогичном) обеспечивает хорошую, естественно сортируемую версию.

Плагин maven-resource-plugin позволяет определить строку фильтра для замены значением при создании файлов JAR. Затем просто прочитайте значение как любое другое свойство приложения.

...