Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / узнать версию приложения / 8 сообщений из 8, страница 1 из 1
11.05.2017, 14:28
    #39451390
natanabrahamjr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать версию приложения
собссно такая задача. есть некое приложение. на мавене. репо на гитхабе. хотелось бы такой вещи, как каждый раз когда в репозиторий что-то заливается приложение билдится - у него инкрементировался номер версии. и чтоб потом я мог внутри приложения этот номер как то получить.

есть какие-то может стандартные подходы чтоб это сделать и не изобретать велосипеда?
...
Рейтинг: 0 / 0
11.05.2017, 14:55
    #39451411
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать версию приложения
natanabrahamjr,

1. Настроить pom.xml так, чтобы при каждом билде он писал что-то с новым номером версии в файл MANIFEST.MF
2. Написать новый класс, например Version, который будет считывать и возвращать это значение.

Как увеличить номер версии maven'ом см.
http://www.mojohaus.org/buildnumber-maven-plugin/usage.html
https://blog.codecentric.de/en/2015/04/increment-versions-maven-build-helper-versions-plugin/
http://stackoverflow.com/questions/8988405/automatically-incrementing-a-build-number-in-a-java-project
http://maven.apache.org/maven-release/maven-release-plugin/

Как что-нибудь записать в манифест
https://maven.apache.org/shared/maven-archiver/examples/manifestEntries.html
...
Рейтинг: 0 / 0
11.05.2017, 23:43
    #39451720
natanabrahamjr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать версию приложения
спасибо. :) задача упростилась. надо теперь просто считать версию с помника внутри проекта. и всё. где-то видел пример, но найти не могу. там как то совсем уж просто было типа так: ${somepath.somevalue} а в мавене это между тегами <somepath><somevalue>1234

и лежало. только именно в мавене а не некоем проперти файле.
...
Рейтинг: 0 / 0
12.05.2017, 08:04
    #39451770
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать версию приложения
natanabrahamjrспасибо. :) задача упростилась. надо теперь просто считать версию с помника внутри проекта.

В любой файл в папке src/main/resorces вставляешь ${project.version}. Например version=${project.version}
в сборку добавляешь (если не путаю) resource-plugin
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.1</version>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>



и потом в приложении читаешь из файла версию приложения. Готово.
...
Рейтинг: 0 / 0
12.05.2017, 09:06
    #39451798
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать версию приложения
natanabrahamjrспасибо. :) задача упростилась. надо теперь просто считать версию с помника внутри проекта. и всё. где-то видел пример, но найти не могу. там как то совсем уж просто было типа так: ${somepath.somevalue} а в мавене это между тегами <somepath><somevalue>1234

и лежало. только именно в мавене а не некоем проперти файле.
Я же написал - в manifest.mf, а не в проперти. И пример дал как в манифест что-нибудь написать мавеном, и ещё несколько примеров дал как в мавене увеличить номер версии при сборке. Чего ещё не хватает?
...
Рейтинг: 0 / 0
12.05.2017, 10:22
    #39451857
natanabrahamjr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать версию приложения
Garricknatanabrahamjrспасибо. :) задача упростилась. надо теперь просто считать версию с помника внутри проекта. и всё. где-то видел пример, но найти не могу. там как то совсем уж просто было типа так: ${somepath.somevalue} а в мавене это между тегами <somepath><somevalue>1234

и лежало. только именно в мавене а не некоем проперти файле.
Я же написал - в manifest.mf, а не в проперти. И пример дал как в манифест что-нибудь написать мавеном, и ещё несколько примеров дал как в мавене увеличить номер версии при сборке. Чего ещё не хватает?
всё супер. спасибо. но тема с манифестом почему-то овнеру не понравилась с обоснованием "слишком сложно, нам так не надо".
...
Рейтинг: 0 / 0
12.05.2017, 10:45
    #39451884
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать версию приложения
natanabrahamjrвсё супер. спасибо. но тема с манифестом почему-то овнеру не понравилась с обоснованием "слишком сложно, нам так не надо".
Ну, и зря. В манифест можно записать значение мавеном автоматически, при компиляции проекта. А для автоматической записи в какой-то другой файл, скорее всего, придётся использовать ant. По крайней мере, я не знаю как это можно сделать мавеном. Ну или руками - это уж точно "слишком сложно...", т.к. можно забыть или записать не то, что надо. И нет ничего сложного что-то считать из манифеста. См. http://manifests.jcabi.com , а тут прямо как раз по вашей теме http://www.yegor256.com/2014/07/03/how-to-read-manifest-mf.html
...
Рейтинг: 0 / 0
12.05.2017, 13:35
    #39452091
natanabrahamjr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать версию приложения
Alexey Tominnatanabrahamjrспасибо. :) задача упростилась. надо теперь просто считать версию с помника внутри проекта.

В любой файл в папке src/main/resorces вставляешь ${project.version}. Например version=${project.version}
в сборку добавляешь (если не путаю) resource-plugin
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.1</version>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>



не пашет. project.version забиндить не может.

и потом в приложении читаешь из файла версию приложения. Готово.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / узнать версию приложения / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]