如何跳过 Maven 中特定文件的变量取消引用?
How to skip variable dereferencing in Maven for specific file?
我在 Jenkins 中有 Maven 项目,Jenkins 在 Windows Server 2012 上 运行。项目中有 init.script,我希望保持不变:
echo "export JAVA_HOME=${JAVA_HOME}" >> ${CMD_START}
问题是在成功构建后我在 init.script 文件中取消引用了 JAVA_HOME 变量:
echo "export JAVA_HOME=c:\Program Files\Java\jdk1.7.0_79" >> ${CMD_START}
我的问题是如何指示 Maven 忽略对该特定 init.script 文件取消引用的变量?也许我可以用 Jenkins 而不是 Maven 来做一些技巧?
我假设您配置了 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 插件配置。我在 assembly.xml 中禁用了文件集的过滤,其中包含所有 .script 文件以解决 JAVA_HOME 变量取消引用:
<fileSet>
<includes>
<include>*.script</include>
</includes>
<directory>server/</directory>
<outputDirectory>server</outputDirectory>
<lineEnding>unix</lineEnding>
<filtered>false</filtered>
</fileSet>
我在 Jenkins 中有 Maven 项目,Jenkins 在 Windows Server 2012 上 运行。项目中有 init.script,我希望保持不变:
echo "export JAVA_HOME=${JAVA_HOME}" >> ${CMD_START}
问题是在成功构建后我在 init.script 文件中取消引用了 JAVA_HOME 变量:
echo "export JAVA_HOME=c:\Program Files\Java\jdk1.7.0_79" >> ${CMD_START}
我的问题是如何指示 Maven 忽略对该特定 init.script 文件取消引用的变量?也许我可以用 Jenkins 而不是 Maven 来做一些技巧?
我假设您配置了 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 插件配置。我在 assembly.xml 中禁用了文件集的过滤,其中包含所有 .script 文件以解决 JAVA_HOME 变量取消引用:
<fileSet>
<includes>
<include>*.script</include>
</includes>
<directory>server/</directory>
<outputDirectory>server</outputDirectory>
<lineEnding>unix</lineEnding>
<filtered>false</filtered>
</fileSet>