Maven:如何对依赖项使用本地lib目录而不是Maven响应

Maven:如何对依赖项使用本地lib目录而不是Maven响应,maven,maven-3,maven-surefire-plugin,maven-dependency,Maven,Maven 3,Maven Surefire Plugin,Maven Dependency,在集成测试期间,我的项目结构如下所示 Project-A |_conf (contains the configuration files) |_lib (Contains the all dependencies) |_pom.xml |_target |_test (Contains the integration tests) 当我运行下面的maven命令时,它会从nexus下载依赖项,并指向本地存储库而不是lib目录 如何让maven

在集成测试期间,我的项目结构如下所示

 Project-A
    |_conf (contains the configuration files)
    |_lib  (Contains the all dependencies)
    |_pom.xml
    |_target
        |_test (Contains the integration tests)
当我运行下面的maven命令时,它会从nexus下载依赖项,并指向本地存储库而不是lib目录

如何让maven检查lib文件夹中的依赖项而不是本地maven存储库

注意:lib包含测试项目所需的所有依赖项

    mvn surefire:test

若您想使用不在maven repo中的依赖项,那个么可以将这些JAR放在项目中(在您的case lib目录中)。并指定要使用的jar的路径,如下所示

<dependency>
            <groupId>anything</groupId>
            <artifactId>anything</artifactId>
            <version>anything</version>
            <scope>system</scope>
            <systemPath>${basedir}/lib/jar_name.jar</systemPath>
</dependency>

任何东西
任何东西
任何东西
系统
${basedir}/lib/jar_name.jar

在这里,您可以提及
groupId
artifactId
version
的任何内容。这些字段在本例中被忽略。

您可以通过~/.m2/settings.xmllib中的settings.xml文件定义这些内容,该文件只包含jar。它不是maven存储库。不包含groupid文件夹结构。请开始使用存储库管理器,并将lib jar部署到存储库管理器中,或者使用默认依赖项…这会使工作更轻松、更方便…使用lib目录确实是一件坏事,除此之外,它意味着将jar文件提交到一个版本控制中,而在该版本控制中,jar文件不存在属于…你的设置是个坏主意..首先是conf目录?如果将配置文件(通常称为资源)打包到生成的jar文件中,则应将其放入src/main/resources中。。如果它们只需要用于测试,则应将它们放入/src/test/resources中。@khmarbaise,我知道这是个坏主意,但它是遗留应用程序。我们无法更改项目结构。我只想在集成测试期间引用lib目录。我正在通过配置文件运行此操作。您可以尝试使用
作为
测试
。如果您想在测试期间引用lib dir,并在运行时引用maven repo,那么您可能需要通过将
一次指定为
测试
,将
指定为
运行时
来添加依赖项两次。还有更多超过100罐。我们需要为所有人这样做吗?有没有提供路径的选项?那种jar文件就是那些jar文件?它们是由其他构建生成的吗?您应该使用通常的依赖项,并且如前所述,使用适当的作用域。此外,作用域系统在很长一段时间内都被弃用,并将产生警告。。。