2011-04-18 3 views
1

Я хотел настроить работу hudson для выполнения выпуска нашего проекта из hudson. Но у меня проблема: в нашем процессе сборки выполняются тесты, требующие подключения к db, host: порт db указан как системный параметр. Но когда я пытаюсь сделать такой системный параметр для выпуска: подготовьте, кажется, что он создает вложенный процесс и не передает ему никаких системных параметров. Как передать системный параметр вложенный процесс?Системное свойство для вложенного процесса maven plugin

Могу ли я сделать это с профилями maven?

Thx для комментариев!

+0

Можете ли вы не использовать файл свойств ....? –

+0

Привет, что вы имеете в виду файл свойств? Я думал, что релиз-плагин должен иметь какое-то свойство, которое должно содержать все параметры, которые должны быть переданы его исполнениям, но я не могу найти этот параметр – user253202

ответ

1

pom.xml может не может система чтения свойства, см Environment variable properties. Но вы не должны писать pom, привязанный к переменным, присутствующим только на определенном компьютере. Пример: JAVA_HOME работает везде, mydatabase.username нет.

Правильный способ - написать конфигурацию в файле свойств и прочитать ее из pom. Таким образом, у вас есть документированная конфигурация, а кто-то знает, какие системные переменные. Это также менее сложно, чем сохранение сценария оболочки с параметрами -D.

+0

-1 для оператора _pom.xml_ не может читать свойства системы. Посмотрите на [documentation] (http://maven.apache.org/pom.html#Properties), и вы увидите, что переменные среды и системные свойства доступны в файле pom.xml. – FrVaBe

+0

Спасибо, я обновил ответ в соответствии с вашими комментариями. – Jano

1

Свойства -D не будут надежно передаваться от верного плагина к вашему тесту (я не знаю, почему он работает с eclipse). При использовании maven в командной строке используйте свойство argLine, чтобы обернуть ваше свойство. Это будет передавать их в тест

mvn -DargLine="-D<property>=<value>" <goal> 

Использование System.getProperty для чтения значения в коде. Посмотрите на this сообщение о разнице System.getenv и Sytem.getProperty.

(Это взято из бывшего answer меня.)

+0

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

+3

Есть свойство [arguments] (http://maven.apache.org/plugins/maven-release-plugin/prepare-mojo.html#arguments), упомянутое в документации, которое может вам понадобиться? В противном случае попробуйте объявить свойства дважды (-D ... и -DargLine). Если вы хотите разрешить свойства в своей конфигурации с пружиной, вы должны обязательно рассмотреть возможность помещать их в файл свойств, чтобы прочитать их с помощью [property-placeholder] (http://static.springsource.org/spring/docs/3.0.x /spring-framework-reference/html/xsd-config.html#xsd-config-body-schemas-context-pphc). – FrVaBe

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