【发布时间】:2020-09-10 16:18:59
【问题描述】:
我有一个简单的 JUnit 测试,我在 macOS Mojave 上的 Eclipse 中成功运行。该类对动态库进行 JNA 调用,因此我必须设置运行时环境变量DYLD_LIBRARY_PATH
当我尝试在 Eclipse 内部或外部运行 mvn test 时,它们都失败了。
据我所知,原因是 macOS 的 System Integrity Protection 与 wipes all DYLD variables。但是必须可以以某种方式设置它们,因为 Eclipse 中的 JUnit 测试按设计工作。
我试图“破解”最后执行的mvn shell 脚本:
exec "$JAVACMD" \
$MAVEN_OPTS \
$MAVEN_DEBUG_OPTS \
-classpath "${CLASSWORLDS_JAR}" \
"-Dclassworlds.conf=${MAVEN_HOME}/bin/m2.conf" \
"-Dmaven.home=${MAVEN_HOME}" \
"-Dlibrary.jansi.path=${MAVEN_HOME}/lib/jansi-native" \
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${CLASSWORLDS_LAUNCHER} "$@"
通过在exec 命令之前立即设置DYLD_LIBRARY_PATH,但没有成功。
还尝试打补丁$JAVACMD先设置变量,没有运气。
我错过了哪些选项(没有禁用 SIP)?
我不是在寻找通用解决方案,运行 mvn 是我的目标
类似问题:
【问题讨论】:
标签: macos maven junit lotus-notes hcl-notes