maven项目通常哪些依赖需要加<scope>?

哪些依赖是必须加<scope></scope>标签的?哪些是可加可不加的?runtime和compile都什么区别?


回答:

Runtime
Runtime,运行时,顾名思义,就是程序的运行阶段。在计算机科学中,运行时是计算机程序生命周期的最后一个阶段,在这个阶段,代码被编译成机器码的形式在CPU上运行。

Compile-time
Compile-time,编译时。指的就是程序代码被转化为机器码的那个阶段,通常发生在运行时之前。

Runtime 和 Compile-time的区别
可以从编译时和运行时分别会发生的错误来感受它们的区别。编译时会发生的错误:语法错误,类型检查错误,编译器崩溃。运行时会发生的错误:被0除,空指针,内存不足,试图打开不存在的文件等。

可以从成功编译和成功运行来感受它们的区别。成功编译表明程序是良构的,接下来可以运行这个程序。成功运行表明这个程序没有出问题的被运行。

可以从他们的输入输出来进行区别。编译时的输入是源代码以及一些被需要的头文件和库等;输出可能是汇编代码或可重定位目标代码,甚至是可执行程序,或者如果出现问题,输出是一堆错误信息。运行时输入输出则完全由程序决定,文件、网络数据包等都可以作为输入;让程序发射导弹,这也算一个输出。

举个例子。

编译时:

string my_value = Console.ReadLine();
int i = my_value;
string类型的值不能直接赋给int类型,所以编译会报错。

运行时:

string my_value = Console.ReadLine();
int i = int.Parse(my_value);
运行时会不会报错就完全取决于输入什么值,是不是可以转化为int。


回答:

比如你要把项目打成一个war包放在tomcat上,那么我们在本地开发时由于需要tomcat的一些依赖,就需要把这些依赖设置为<scope>runtime</scope>,表示在本地运行的时候引入这些依赖,但是在打包的时候不需要引入,因为生产环境的tomcat本身已经有这些依赖

以上是 maven项目通常哪些依赖需要加&lt;scope&gt;? 的全部内容, 来源链接: utcz.com/p/944936.html

回到顶部