我们的开发环境由多个构建安装程序介质的构建代理组成。今天,我们在其中一个构建代理的 install4j 内部出现了编译错误。类版本与某些自定义类不匹配。我们发现构建代理上安装的 jre 是 jre_1.6 x32 和 jre_1.7 x64。项目设置设置为创建最低 java 版本为 1.7 的 x32 安装程序介质。因此install4j的搜索算法(%JAVA_HOME%等)使用jre_1.6 x32来编译代码。
现在的问题:是否可以在maven构建过程中配置compile-jre?也许要将 config.xml 的路径从 %User_Home%/.install4j5 修改为 %INSTALL4J_HOME%/config?
适合我们环境的最佳解决方案是将compile-jre指向一个jre,该jre将在maven构建期间提取(阶段:进程资源),并且稍后将作为捆绑的jre包含在安装程序中应用程序。然后我们可以确保应用程序使用与安装后使用的相同的 jre 进行编译。无论构建代理如何配置(x64 或 x32)。
希望这个问题是可以理解的。
问候
哈迪
最佳答案
在“常规设置->Java版本”步骤中,您可以配置用于脚本编译的JDK或JRE。默认情况下,它设置为“当前使用的 JRE”,即 install4j IDE 和命令行编译器运行时使用的 JRE。
为了使编译更具确定性,请切换到已配置的 JDK。项目中只会保存指定的 JRE 名称(例如“JDK 1.7”),实际的 JRE 必须在每台机器上进行配置,然后对所有项目全局相同。
如果您在 headless 计算机上进行编译,请编辑 $HOME/.install4j5/config.xml
并将 jdks
元素设置为类似
<jdks>
<jdk name="JDK 1.7" id="1" javaHome="path/to/java/home"
version="1.7.0" jreOnly="false" />
</jdks>
关于build - 如何在构建代理上配置compile-jre?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18060075/