gpt4 book ai didi

Spring-boot 测试加载外部 jars(相当于 loader.path)

转载 作者:行者123 更新时间:2023-12-04 21:30:37 29 4
gpt4 key购买 nike

我们有一个应用程序在运行时依赖于外部 jars(例如在 Spring-boot 中运行的 Talend 作业)。现在我们可以使用 -Dloader.path 参数从 Spring-Boot 启动它。但是,我们无法使用外部 lib 文件夹运行集成测试(即从 Spring-Boot Test 启动 Talend 作业)。是否可以有类似的选项来使用 SpringBoot 测试加载外部作业以进行集成测试?

最佳答案

我把这个整理好了。

Intellij -> Select Module -> Open Module Setting -> Dependency -> Add Dependency -> 选择外部 jar -> Scope to be test only。

这样它可以很好地用于测试用例,同时不能用于实际的主代码。

把 jar 放在哪里?

鉴于它将用于测试用例,我建议将 jar 提交到 src/test/lib 并在添加依赖项时选择此路径。

如果您在 repo 中提交相同的内容,Intellij 会生成 .iml 文件(其中包含依赖项列表),那么其他团队成员无需任何进一步设置即可轻松使用。

现在问题仍然存在于 linux env 或 CIT 环境。我认为我们可以通过 CLASSPATH 环境变量添加这个 jar,然后启动任何 CIT 作业。

混合解决方案,但随后它按我的预期工作。

另一种解决方案:
在本地 repo 中安装外部 jar,并在 pom.xml 中添加具有测试范围的依赖项。很简单的选择。

在本地 repo 上安装 jar :

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>3.0.0-M1</version>
<executions>
<execution>
<id>install-jar</id>
<phase>initialize</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${project.basedir}/src/test/lib/somejar-1.0.jar</file>
<groupId>com.beta.gamma</groupId>
<artifactId>somejar</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
</configuration>
</execution>
<executions>
</plugin>

现在可以将其添加为与其他依赖项一样的依赖项。这将适用于环境。

关于Spring-boot 测试加载外部 jars(相当于 loader.path),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53256883/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com