Хорошо, так что с подсказкой от AtomHeartFather я получил его.
Сначала нам нужно написать файл ant xml. Этот файл будет создан файл, где номер сборки будет сохранен и увеличивается на единицу, а затем он будет выглядеть через ваш файл исходного кода ${src}/com/yourPath/Main.java
для переменной public static final String BUILD_NUMBER = ".*";
и заменить его текущей сборки числа
Файл XML будет выглядеть следующим образом:
<project name="MyProject" default="init" basedir=".">
<description>
simple example increment build variable
</description>
<!-- set global properties for this build -->
<property name="src" location="../src"/>
<target name="init">
<echo file="myAntOut.txt">My first ant ${src} ${line.separator}</echo>
<buildnumber/>
<replaceregexp file="${src}/com/yourPath/Main.java"
match="public\s+static\s+final\s+String\s+BUILD_NUMBER\s+=\s+".*";"
replace="public static final String BUILD_NUMBER = "${build.number}";"
byline="true"
/>
</target>
</project>
Затем в вашем intelliJ (я использую 14.0.3) вы нажимаете на View->Tool Windows->Ant Build
. Затем +
и перейдите к вашему файлу xml (обратите внимание, что текущий путь, используемый вашим xml, будет являться путем к самому XML-файлу - не проект inteliJ - таким образом, вы можете исправить часть location="../src"
в зависимости от того, где вы храните свой xml). Затем вы увидите нашу цель init
, которую вы можете выбрать, и нажмите кнопку play
. Если он работает, вы увидите, что BUILD_NUMBER
сгенерирован в файле исходного кода Main.java
. Теперь важный трюк, как сделать это автоматически: просто щелкните правой кнопкой мыши по init
и выберите Execute on->Before Compilation
. Done :)
Интересный вопрос. Какую проблему решает ее решение? –
Я не могу думать о простом, единственном решении intelliJ, но как насчет использования '' ant'' для этого? Вы можете запускать муравьиную задачу изнутри intelliJ напрямую. Таким образом, процесс может быть IDE-агностиком. – AtomHeartFather
Petur: Ну не так много - только я могу спросить коллег о том, какую версию моего инструмента они используют, и я могу сказать им, если он последний. Даже если я забуду изменить версию вручную, прежде чем я ее отпущу ... Следующим шагом было бы связать ее с номером системы ревизии как-то. Но на данный момент я хотел просто что-то быстрое и грязное и фантастическое число, вроде 125 :) –