春季启动测试以加载外部jar(等效于loader.path)

时间:2018-11-12 06:25:46

标签: spring-boot talend spring-boot-test

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

1 个答案:

答案 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>

现在可以将其作为依赖项添加到其他依赖项中。这将在环境中工作。