范围系统的类路径与提供的

Classpath for scope system vs provided

systemprovided 范围 - 它们都很相似,但我想知道:

1) system 范围是否意味着依赖项将仅包含在运行时类路径中?

2) 两者的类路径有何不同? systempath defined 是否成为 system scope 依赖的类路径?

由于这些是 2 个简短的查询并且紧密耦合,因此不会为它们发布 2 个问题。

system 意味着该元素将逐字添加到类路径(即使用绝对路径)并且某人(管理员,包管理员)将 JAR 文件复制到 systempath 所在的位置指向。其他依赖在本地 Maven 仓库中搜索。除此之外,它就像 provided.

不应该使用这种依赖。很久以前,使用 mvn file:install.

将 JAR 添加到类路径而不将它们安装在本地 Maven 存储库中是一种简单的方法

provided 意味着当应用程序运行时它将以某种方式位于类路径中。一个例子是像 Tomcat 这样的 Web 容器,它带来了很多像 Servlet 这样的 HTTP 支持 类。那些 类 安全敏感并且需要与构建容器的内容相匹配。所以你必须告诉 Maven "please put it on the classpath for tests but not in the WAR, okay?".

另请参阅: