Java 硒的maven范围试验

Java 硒的maven范围试验,java,maven,selenium,Java,Maven,Selenium,当我们在selenium项目的pom.xml文件中使用scope作为某些依赖项的测试时,有什么区别。 例子:两者的区别 <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> <scope>test<

当我们在selenium项目的pom.xml文件中使用scope作为某些依赖项的测试时,有什么区别。 例子:两者的区别

<dependency>
 <groupId>org.seleniumhq.selenium</groupId>
 <artifactId>selenium-java</artifactId>
 <version>3.141.59</version>
 <scope>test</scope>
</dependency>

org.seleniumhq.selenium
硒爪哇
3.141.59
测试


org.seleniumhq.selenium
硒爪哇
3.141.59

默认范围是
编译

此作用域在编译时将依赖项添加到项目中,并且在创建具有依赖项(或类似项)的JAR时也将导出该依赖项

test
范围仅添加了对测试源的依赖性(例如,在大多数情况下,单元测试/位于
src/test
)。它只能从测试源访问,并且不会导出(除了测试JAR)

如果您只需要在项目的测试代码中使用selenium,我建议您在Maven中使用
test
scope.

依赖范围 用于限制依赖项的可传递性,这也会影响用于各种构建相关任务的类路径

目前,支持以下6个依赖项范围:

  • 编译
    编译
    范围是默认范围,如果未指定,则使用该范围。编译依赖项在项目的所有类路径中都可用。这些依赖关系将传播到依赖项目

    • Exmaple:

      <scope>compile</scope>
      
      <scope>provided</scope>
      
      <scope>runtime</scope>
      
      <scope>test</scope>
      
      <scope>system</scope>
      
      <scope>import</scope>
      
  • 运行时
    运行时
    范围表示在编译时不需要依赖项,而仅在执行时才需要依赖项。它位于运行时和测试类路径中,但不在编译类路径中

    • Exmaple:

      <scope>compile</scope>
      
      <scope>provided</scope>
      
      <scope>runtime</scope>
      
      <scope>test</scope>
      
      <scope>system</scope>
      
      <scope>import</scope>
      
  • 系统
    系统
    范围与提供的类似,只是您必须提供明确包含它的JAR。工件始终可用,并且不会在存储库中查找

    • Exmaple:

      <scope>compile</scope>
      
      <scope>provided</scope>
      
      <scope>runtime</scope>
      
      <scope>test</scope>
      
      <scope>system</scope>
      
      <scope>import</scope>
      

did u表示该依赖项不能由
src/main/java
或项目的其他文件夹中的类使用??是的,只有在
src/test/java
中,并且项目的依赖项也不能使用它。