2015-03-25 3 views
9

Могу ли я каким-то образом построить процесс IntelliJ для предварительной обработки исходных кодов Java и дать мне когда-либо увеличивающий номер сборки? Что-то вроде:IntelliJ IDEA - могу ли я автоматически увеличить номер сборки (версии)?

int myBuildNumber = INTELLI_J_IDEA_MAGIC_WHICH_WILL_INCREMENT_EVERY_BUILD; 
+0

Интересный вопрос. Какую проблему решает ее решение? –

+1

Я не могу думать о простом, единственном решении intelliJ, но как насчет использования '' ant'' для этого? Вы можете запускать муравьиную задачу изнутри intelliJ напрямую. Таким образом, процесс может быть IDE-агностиком. – AtomHeartFather

+0

Petur: Ну не так много - только я могу спросить коллег о том, какую версию моего инструмента они используют, и я могу сказать им, если он последний. Даже если я забуду изменить версию вручную, прежде чем я ее отпущу ... Следующим шагом было бы связать ее с номером системы ревизии как-то. Но на данный момент я хотел просто что-то быстрое и грязное и фантастическое число, вроде 125 :) –

ответ

6

Хорошо, так что с подсказкой от 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+&quot;.*&quot;;" 
       replace="public static final String BUILD_NUMBER = &quot;${build.number}&quot;;" 
       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 :)

+0

Это действительно отличный ответ. Престижность к вам. –

+1

Tipp: Вы также можете выполнить Ant-файл, когда создаются (выпуск) пакеты. Просто выполните следующие действия (предположим, что у вас уже есть артефакт): Build -> edit Artifact -> (Tab) Pre-processing -> Run Ant target "init" :) –

+0

Удивительный ответ Vit, у меня много раздражения. Как создать строковые строки строк, например, 1.1.1 и т. Д.? – Sumit

Смежные вопросы