当前位置: 首页 > 知识库问答 >
问题:

加载外部JAR的Spring启动测试(等效于加载程序路径)

毋玺
2023-03-14

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

共有1个答案

欧金鹏
2023-03-14

我把这个解决了。

Intellij-

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

罐子放在哪里?

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

Intellij生成。iml文件(具有依赖项列表)如果您在回购中提交相同的文件,那么其他团队成员可以轻松使用,而无需进行任何进一步的设置。

现在,linux环境或CIT环境的问题仍然存在。我认为我们可以通过CLASSPATH env变量添加这个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>

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

 类似资料:
  • 现有一个springboot项目,通过扫描二维码查询信息,比如一棵树,扫描二维码后可以看到他相关的信息。但这个项目不止有树类型,还有道路,某个物品。所以将项目分模块开发,核心模块作为一个jar包,复制提供基础服务如数据导入导出。各类型构建成单独的jar。部署时需要那种类型就加载对应的jar。这样做是为了满足不同客户需求。 尝试: java -Xbootclasspath/a:file:./libs

  • 我有一个带有spring boot的java项目,我需要加载应用程序。外部文件夹中的属性和依赖项jar。 我使用该应用程序进行了测试。类路径和加载程序中的属性。路径属性工作正常。 当我使用外部属性文件(我确信它们已被使用)时,加载程序。路径工作不正常,结果为ClassNotFound,因为JAR未加载。 此外,当我启动应用程序与**-Dloader.path=**xxx它的工作正常。 如何使用外部

  • 我正在开发一个Spring Boot应用程序。我想提供一个(相当初级的)插件系统。最初,我希望只将JAR添加到类路径中就足够了,如下所示: 此外,如果我尝试在插件控制器中一个JpaRepository,它会失败,因为它找不到存储库接口类(我猜这是因为我乱弄类加载器引起的问题)。 不过,在我的主应用程序中自动创建存储库就可以很好地工作,因此它的配置不应该是一个问题。 是不是我做错了什么?我是否可以配

  • 我有一个名为core project jar的maven spring项目,其中包含orm和持久性xml文件,以及在注释和xml中定义的实体。现在我有了另一个spring boot项目,它利用这个核心项目初始化持久性。在SpringBoot Main类中定义@EntityScan(packages)时,我能够扫描带注释的实体(即带有实体的实体),但没有扫描orm xml中定义的实体(即 获取错误,

  • 问题是,如果在该类之前运行任何其他测试,则2个存储库测试类将<code>无法加载该测试类的第一个测试用例的ApplicationContext。 Github上的项目“修复单元测试”分支 我使用Mongodb嵌入式数据库对一个spring-boot maven应用程序进行了一系列JUnit组件测试。 其中2个测试类在2个spring存储库上运行单元测试。 但是,由它们自己运行的测试类工作得非常好,

  • 我试图弄清楚什么是最好的方法来设置Spring Boot应用程序,使其具有自己的jar依赖项,但当它作为java-jar命令运行时,将额外的jar添加到类路径中。哪种方法更有意义 > 使用原始jar(不添加依赖项)并将所有jar(应用程序和运行时)放置在文件系统的文件夹中,并使用PropertiesLauncher指定jar文件夹的loader.path。 使用fat jar(与应用程序jar一起