首页 > 解决方案 > 在 Mac 上的 mvn 构建期间,Java 测试中的环境变量为空

问题描述

我有不同的 Java 测试行为(可能是在 MacOS 更新到 Big Sur 11.2.3 或其他系统之后)。

我的 JUnit 测试需要 Mac 上的变量 DYLD_LIBRARY_PATH 和 Ubuntu 上的 LD_LIBRARY_PATH(使用 mvn surefire,见下文)来查找一些 dylib/共享对象。

测试在 IntelliJ 中工作,在两个操作系统上都没有任何问题。但是在 mvn 构建期间,DYLD_LIBRARY_PATH 变量 (System.getenv(..)) 为空,并且在 Mac 上测试失败(在 Ubuntu 上它可以工作)。以'-X' 开头的 mvn 表明,surefire 设置了 DYLD_LIBRARY_PATH,但后来它仍然为空。

我正在使用 maven-3.6.3、surefire 3.0.0-M5 和 OpenJDK 11.0.10。

有什么想法,我怎么能解决环境问题?

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <environmentVariables>
            <LD_LIBRARY_PATH>${basedir}/src/main/resources/libs</LD_LIBRARY_PATH>
            <DYLD_LIBRARY_PATH>${basedir}/src/main/resources/libs</DYLD_LIBRARY_PATH>
        </environmentVariables>
    </configuration>
</plugin>

标签: javamavenjunitmaven-surefire-pluginmacos-big-sur

解决方案


请在我们的JIRA中报告错误并将您的项目附加到 ZIP 中。我们需要重现它并调试插件,但该项目是必需的。


推荐阅读