Как пропустить разыменование переменных в Maven для конкретного файла?
У меня есть проект Maven в Дженкинсе, Дженкинс работает на Windows Server 2012. В проекте есть init.script со следующей строкой, которую я хочу оставить без изменений:
echo "export JAVA_HOME=${JAVA_HOME}" >> ${CMD_START}
Проблема в том, что после успешной сборки я получил разыменованную переменную JAVA_HOME внутри файла init.script:
echo "export JAVA_HOME=c:\Program Files\Java\jdk1.7.0_79" >> ${CMD_START}
Мой вопрос: как я могу дать Maven команду игнорировать разыменование переменных для этого конкретного файла init.script? Может быть, есть какой-то трюк, который я могу сделать с Дженкинсом вместо Мейвена?
2 ответа
Я предполагаю, что вы настроили Maven для фильтрации ваших ресурсов (в src/main/resources
). Если это так, исключите сценарий инициализации следующим образом:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>path/to/init.script</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>path/to/init.script</include>
</includes>
</resource>
</resources>
Причина была в настройке сборочного плагина в Maven. Я отключил фильтрацию в файле assembly.xml для набора файлов, который включает в себя все файлы.script для разрешения разыменования переменных JAVA_HOME:
<fileSet>
<includes>
<include>*.script</include>
</includes>
<directory>server/</directory>
<outputDirectory>server</outputDirectory>
<lineEnding>unix</lineEnding>
<filtered>false</filtered>
</fileSet>