我们有一个应用程序,该应用程序对外部jar具有运行时依赖性(例如,在Spring-boot中运行的Talend作业)。现在我们可以使用-Dloader.path参数从Spring-Boot启动它。但是,我们无法使用外部lib文件夹运行集成测试(即从Spring-Boot Test启动Talend作业)。可以使用SpringBoot测试来为集成测试加载外部作业吗?
答案 0 :(得分:0)
我把这个排序了。
Intellij->选择模块->打开模块设置->依赖关系->添加依赖关系->选择外部jar->仅用于测试的作用域。
通过这种方式,它可以很好地用于测试用例,并且同时不会在实际的主代码中使用。
罐子放在哪里?
鉴于其将在测试用例中使用,我建议在src / test / lib中提交jar,并在添加依赖项时选择此路径。
Intellij生成.iml文件(具有依赖项列表),如果您在回购中提交了该文件,则其他团队成员可以轻松使用而无需进行任何进一步设置。
现在对于Linux env或CIT环境仍然存在问题。我认为我们可以通过CLASSPATH env变量添加此jar,然后启动任何CIT作业。
混合解决方案,然后按预期运行。
另一种解决方案: 在本地仓库中安装外部jar,并在带有测试范围的pom.xml中添加依赖项。简单的选择。
在本地存储库上安装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>
现在可以将其作为依赖项添加到其他依赖项中。这将在环境中工作。