Получение идентификатора сборки в приложении Java - PullRequest
4 голосов
/ 30 ноября 2010

Есть ли у кого-нибудь простое предложение для записи идентификатора сборки (сгенерированного во время компиляции), который отображается в строке заголовка приложения во время выполнения?

Построение из Eclipse, все, что мне нужно, это идентификатор, затем я могу передать его заголовку.

Ответы [ 4 ]

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

Если вы используете Maven, особенно если вам нужен номер сборки из SVN (хотя он может генерировать уникальные номера сборки для вас через конфигурацию), посмотрите на buildnumber-maven-plugin .

Вы просто добавляете фрагмент, подобный следующему, в свой файл pom.xml:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <version>1.0-beta-3</version>
            <executions>
                <execution>
                    <phase>validate</phase>
                    <goals>
                        <goal>create</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <doCheck>true</doCheck>
                <doUpdate>true</doUpdate>
            </configuration>
        </plugin>

Затем используйте $ {buildNumber} позже в pom для ссылки на идентификатор сборки.Я использую его, чтобы записать это число в манифест так, используя maven-war-plugin.

                <archive>
                    <manifest>
                        <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                    </manifest>
                    <manifestEntries>
                        <Implementation-Build>${buildNumber}</Implementation-Build>
                    </manifestEntries>
                </archive>
3 голосов
/ 30 ноября 2010

Если вы используете Ant, вы можете легко настроить цель «jar» или «package» так, чтобы она генерировала файл, включающий текущую метку времени, и включала его в ваш jar вывод.

Если вы используете Maven, есть несколько способов добиться чего-то похожего, например, перейти на Ant с помощью плагина antrun .

2 голосов
/ 30 ноября 2010

Если вы хотите использовать временную метку для сборки, вы можете получить ее из дат модификации jar или класса или из файла MANIFEST.

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

Включение метки времени в «уникальный идентификатор» гарантирует, что у каждой сборки будет свой идентификатор.

0 голосов
/ 30 ноября 2010

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

...