购物网站那个信用好又便宜,网页源码app,想要建设一个网站都需要注意什么,上海有什么企业Maven 依赖范围#xff08;Scope#xff09;详解
Maven 是一个强大的项目管理工具#xff0c;广泛用于 Java 开发中构建、管理和部署应用程序。在使用 Maven 构建项目时#xff0c;我们经常需要引入各种第三方库或框架作为项目的依赖项。通过在 pom.xml 文件中的 depe…Maven 依赖范围Scope详解
Maven 是一个强大的项目管理工具广泛用于 Java 开发中构建、管理和部署应用程序。在使用 Maven 构建项目时我们经常需要引入各种第三方库或框架作为项目的依赖项。通过在 pom.xml 文件中的 dependencies 部分定义这些依赖。每个依赖可以指定一个范围scope用来控制该依赖如何被使用以及它会在哪些类路径中可见。
1. 默认范围compile
这是 Maven 中默认的依赖范围如果没有明确指定范围默认情况下就是 compile 范围。
dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.9/version
/dependency特点
编译、测试和运行时类路径都会包含该依赖。打包时也会将此依赖打包进最终的 JAR 或 WAR 文件中。
2. 运行范围runtime
runtime 范围用于指定那些仅在运行时需要而在编译时不需要的依赖。例如JDBC 驱动程序通常用这种范围来定义。
dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.21/versionscoperuntime/scope
/dependency特点
编译时类路径不包含此依赖。测试和运行时的类路径会包含该依赖。打包时这些依赖会被打包进最终的 JAR 或 WAR 文件中。
3. 提供范围provided
provided 范围用于指定那些在编译和测试时需要但是在运行时由容器或环境提供的依赖。例如在使用 Servlet 容器如 Tomcat 进行开发时Servlet API 可以用这种范围来定义。
dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion4.0.1/versionscopeprovided/scope
/dependency特点
编译和测试时类路径包含此依赖。运行时类路径不包含假设运行环境会提供这些类。
4. 测试范围test
test 范围用于指定那些仅在编译和执行测试时需要的依赖。例如 JUnit 等测试框架通常用这种范围来定义。
dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13.2/versionscopetest/scope
/dependency特点
仅编译和运行测试时类路径包含此依赖。编译和运行主程序时不包括。
5. 系统范围system
system 范围允许你引用一个不在 Maven 存储库中的依赖。这种依赖必须由 systemPath 元素明确指定其位置。
dependencygroupIdcom.oracle/groupIdartifactIdojdbc6/artifactIdversion11.2.0.3/versionscopesystem/scopesystemPath${project.basedir}/lib/ojdbc6.jar/systemPath
/dependency特点
类似于 provided 范围但在编译和测试时需要指定具体的文件路径。这种依赖不在 Maven 中央仓库中查找。
6. 导入范围import
import 范围用于在 dependencyManagement 部分引用 BOM (Bill of Materials) 文件。这允许你管理整个项目的依赖版本和范围而不必在每个子模块的 pom.xml 中重复这些信息。
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion2.3.4.RELEASE/versiontypepom/typescopeimport/scope
/dependency特点
仅在 dependencyManagement 中使用。可以帮助管理所有子模块的依赖。
通过合理地选择和配置 Maven 的依赖范围可以更好地控制项目的构建过程避免不必要的类路径污染并确保项目能在正确的环境和条件下运行。