2014-09-08 4 views
0

Iam, используя Jenkins для создания моего Android Apk. В build.xml, IAM, используя регулярные выражения, чтобы заменить мою целевую строку следующим образом ...Использование регулярных выражений в build.xml

<replaceregexp file="BuildConfig.java" 
    match="public static final boolean IS_SAMSUNG_MDM_ENABLED  =\"(.*)\"" 
    replace="public static final boolean IS_SAMSUNG_MDM_ENABLED =\"" + ${properties.IS_SAMSUNG_MDM_ENABLED} + "\"" /> 

но когда IAM запуска сборки через Jenkins получать следующее сообщение об ошибке.

BUILD FAILED 
/var/lib/jenkins/workspace/Ace Build/build.xml:40: The following error occurred while executing this line: 
/var/lib/jenkins/workspace/Ace Build/IgnitorACE/build.xml:70: Element type "replaceregexp" must be followed by either attribute specifications, ">" or "/>". 

Есть ли какие-либо проблемы с моим регулярным выражением ...

Благодаря

+0

, что входной и ожидаемые результаты – vks

+0

меня build.xml, где у меня будет общественное statc окончательным булево IS_SAMSUNG_MDM_ENABLED = ложь/истинная переменная объявлена. У меня есть файл свойств, через который я буду передавать указанное выше логическое значение во время выполнения. По этой причине я использую указанное выше регулярное выражение. – user3297196

ответ

0

ошибка, вы получаете, кажется, из-за кавычек ("). Вместо этого вы должны использовать &quot;. Ниже пример работы:

BuildConfig.java:

public class MyFirstJavaProgram { 

    public static void main(String []args) { 
     public static final boolean IS_SAMSUNG_MDM_ENABLED = false 
     System.out.println("Hello World");  
    } 
} 

file.properties:

IS_SAMSUNG_MDM_ENABLED=true 

build.xml:

<project name="MyProject" default="regextask" basedir="."> 
    <property file="file.properties"/> 

    <target name="regextask"> 
     <replaceregexp file="BuildConfig.java" 
         match="public static final boolean IS_SAMSUNG_MDM_ENABLED = (.*)" 
         replace="public static final boolean IS_SAMSUNG_MDM_ENABLED = &quot;${IS_SAMSUNG_MDM_ENABLED}&quot;" 
     />  
    </target> 
</project> 

enter image description here

Выход:

public class MyFirstJavaProgram { 

    public static void main(String []args) { 
     public static final boolean IS_SAMSUNG_MDM_ENABLED = "true" 
     System.out.println("Hello World"); 
    } 
} 
+0

Спасибо за вышеприведенный код .... Я пробовал и его работу отлично ... – user3297196

+0

@ user3297196: Отлично! :) Пожалуйста, примите ответ, если это поможет. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – Technext

+0

Привет, Техник ... У меня есть три файла свойств, такие как файлы A.properties, B.properties и C.properties в мой SVN. Я использую файловый параметр в jenkins. Поэтому, когда я загружаю конкретный файл свойств, тогда эти свойства должны быть отражены в коде. Можете ли вы мне помочь – user3297196

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