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

时间:2019-04-02 14:21:18

标签: maven maven-3

systemprovided的范围-两者相似,但我想知道:

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

2)两者之间的classpath有何不同?定义的systempath是否成为system范围依赖项的类路径?

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

1 个答案:

答案 0 :(得分:1)

system表示该元素将逐字添加到类路径中(即具有绝对路径),并且某人(管理员,程序包管理器)将JAR文件复制到systempath所指向的位置。在本地Maven存储库中搜索其他依赖项。除此之外,它就像provided

不应使用这种依赖性。多年以前,这是一种简单的方法,无需使用mvn file:install将JAR安装到类路径中,而无需将它们安装在本地Maven存储库中。

provided意味着它将在应用程序运行时以某种方式位于类路径中。一个示例是一个像Tomcat这样的Web容器,它带来了许多HTTP支持类,例如Servlet。这些类对安全性敏感,需要与构建容器的对象匹配。因此,您必须告诉Maven“请将其放在测试的类路径上,而不是放在WAR中,好吗?”。

另请参阅: