Программно получить Maven-версию вашего проекта - PullRequest
10 голосов
/ 07 января 2012

Как мне получить Maven версию моего проекта программно?

Другими словами:

static public String getVersion()
{
    ...what goes here?...
}

Например, если мой проект сгенерирует jar CalculatorApp-1.2.3.jar, я хочуgetVersion() чтобы вернуть 1.2.3.

Ответы [ 2 ]

19 голосов
/ 07 января 2012

Создать файл version.prop в src/main/resources со следующим содержимым:

version=${project.version}

Добавьте следующее в pom вашего проекта:

<build>
...
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>**/version.prop</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>false</filtering>
            <excludes>
                <exclude>**/version.prop</exclude>
            </excludes>
        </resource>
    </resources>
...
</build>

Добавьте следующий метод:

public String getVersion()
{
    String path = "/version.prop";
    InputStream stream = getClass().class.getResourceAsStream(path);
    if (stream == null)
        return "UNKNOWN";
    Properties props = new Properties();
    try {
        props.load(stream);
        stream.close();
        return (String) props.get("version");
    } catch (IOException e) {
        return "UNKNOWN";
    }
}

p.s. Нашел большую часть этого решения здесь: http://blog.nigelsim.org/2011/08/31/programmatically-getting-the-maven-version-of-your-project/#comment-124

0 голосов
/ 20 марта 2018

Для jar-файлов у вас есть MANIFEST.MF в качестве места по умолчанию для размещения там реализации-версии. Maven поддерживает создание файла jar следующим образом.

Смотрите также Как добавить значение реализации-версии в манифест jar с помощью Maven?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...