2016-04-26 4 views
0

У меня есть значения свойств, установленные в файле build.properties, которые используются java-кодом. (Это часть UPS Quantum View) build.properties file url=https://onlinetools.ups.com/ups.app/xml/QVEvents accesskey=XYZ username=QWER password=12345 subsname=OUTBOUNDFULLКак переопределить значение, указанное в build.properties во время выполнения java

build.properties упоминается в build.xml

<property file="build.properties"/> 

Я хочу использовать различные значения subsname в разное время. поэтому я пытался

ant -Dsubsname=OUTBOUND_EST из командной строки, но в сборке он продолжает принимать значение из файла build.properties как OUTBOUNDFULL. Есть ли другой способ сделать это.

(Примечание: Это часть ИБП Quantum View) Часть кода Java, где используются значения

public class JAXBQVClient { 
private static final String LICENSE_NUMBER = "accesskey"; 
private static final String USER_NAME = "username"; 
private static final String SUBSNAME = "subsname"; 
private static final String PASSWORD = "password"; 
private static final String ENDPOINT_URL="url"; 
private static final String OUT_FILE_LOCATION = "out_file_location"; 
static Properties props = null; 

static{ 
    props = new Properties(); 
    try{ 
     props.load(new FileInputStream("./build.properties")); 
    }catch (Exception e) { 
     e.printStackTrace(); 
    }  
} 
+0

Когда вы хотите свойства свойств езды во время сборки муравья или когда ваш код Java выполнен? –

+0

@ P.A.Cros Я хочу переопределить его, когда выполняется java-код. Это время, когда он принимает параметры из файла build.properties, такие как acceskey, username, password и subsname, чтобы сформировать Request xml. – Max

+0

@ P.A.Cros. Есть ли способ переопределить значения build.properties во время выполнения Java. – Max

ответ

0

Поскольку файл build.properties читается процесс Java, который запуск вашей муравей сборки (Я думаю), вы можете использовать filterset муравей.

Например, вы можете определить шаблон свойства файла build-template.properties так:

url=https://onlinetools.ups.com/ups.app/xml/QVEvents 
accesskey=XYZ 
username=QWER 
password=12345 
[email protected]@ 

, а затем использовать filterset при копировании его в build.properties вы используете для конкретного запуска:

<copy file="build-template.properties" toFile="build.properties"> 
    <filterset> 
    <filter token="SUBNAMEKEY" value="${SUBNAMEVALUE}"/> 
    </filterset> 
</copy> 

, тогда вызов ant -DSUBNAMEVALUE=OUTBOUND_EST должен сгенерировать файл build.properties с subsname=OUTBOUND_EST

+0

@ P.A.Cros.Спасибо за ваш ответ. Я добавил следующее: '<свойство файла = "build.properties"/> \t <скопировать файл = "build-template.properties" toFile = "build.properties"> \t \t <фильтр маркер =» SUBNAMEKEY»значение = "$ {SUBNAMEVALUE}"/> \t \t' к build.xml и build.properties и build-template.properties. Но он по-прежнему принимает значение, установленное в исходных build.properties. Любые изменения, которые необходимо внести в build.xml по вашему желанию? – Max

+0

@Max Важно поместить 'property file =" build.properties "вызов после копирования с заменой файла вашего шаблона. task 'property file =" build.properties "' будет загружать и устанавливать любые свойства в файле, а когда это будет сделано, значение для каждого свойства больше не может быть переопределено –

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