Composer 是 PHP 的一个依赖管理工具,Java 的 Maven,Python 的 pip,Ruby的 gem,Nodejs 的 npm
Maven(犹太语:知识的积累)项目对象模型(Project Object Model),通过描述信息来管理项目的构建,报告和文档的软件项目管理工具;
POM代表项目对象模型,是 Maven 中工作的基本单位(XML 文件),保存在该项目基本目录中的 pom.xml
文件;
POM 包含的项目是使用 Maven 来构建的,它用来包含各种配置信息。
Maven 生命周期(编译和创建一个 JAR 文件)
本地仓库
<localRepository>E:/repository/maven/repos</localRepository>
中心仓库
<repositories>
<repository>
<id>central</id>
<name>My Central Repository</name>
<url>http://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
私服,私有服务器,是公司内部Maven项目经常需要的东东(Nexus是常用的私用Maven服务器,默认端口8081);
配置在局域网环境中,为局域网中所有开发人员提供jar包的统一管理
本地仓库(本机)--->私服(局域网)--->中心仓库(外部网络)
对于项目所依赖的jar包,maven默认会在中央仓库下载jar包,到本地的磁盘目录。
如果公司内部搭了一个maven私服的话,将仓库地址指向内网仓库地址,需要的jar包可直接在私服取,下载速度比远程要快,如果本地仓库没有则自动从远程下载并保存在本地。()使用nexus搭建一个私服);
jar 包管理,防止jar之间依赖起冲突 。小组之间建立个私服务;
maven的主要作用之一,就是对模块化开发的支持,开发人员A机器上可以只有工程A,开发人员B机器上只有工程B,其中工程B依赖工程A ,只要工程A已经deploy到了远程仓库(私服),那么工程B就可以在本地构建,不需要有工程A的代码。也就是说,每个开发人员本地,都只需要check out自己负责的工程 : 采用分模块开发的方式,每个开发人员仅check out自己负责的代码;