背景知识
我们先回忆下关键字package:为便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,Java引入包(package)机制,提供类的多重类命名空间。
package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包,约定俗成的写法是:公司的域名倒写+项目名+其他。如:
package com.apple.javatest.project1.rest
package语句中,“.”指明了包的层次,Java编译器会按包的层次去找对应的类。
我们看到,package可以用来区分不同的模块,比如rest接口类都用上面的包名。
而其他类若要使用该包名下的类,则通过import语句引入某个类。
刚才说的是在一个工程里面,那不同的工程之间呢?可以首先想一下Java(或者说oracle公司)提供的类,我们是如何使用的?通过安装JDK,配置classpath,我们就可以使用java的lang、util等包里面的类。而这些类,是通过打包成jar文件的形式提供的。
同样,如果我们要使用其他工程的类,也可以让他打成jar,然后拷贝过来。
问题出现
1、jar包的提供者,发布、维护自己的jar包不方便;
2、jar包的使用者,寻找、更新使用的jar包不方便;
3、在IDE里引入jar,操作不方便;
4、jar包之间的依赖管理更是无法想象的困难和繁琐。
所以我们引入Maven来解决这个问题。参考之前的文章:使用Nexus作为你的依赖存储库