开发者学堂课程【项目管理工具Maven学习:开发环境中使用Maven】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/23
目录:
一、仓库
二、Eclipse
一、仓库
1、坐标
关于坐标,首先会想到平面几何,x,y!!任何一个坐标都能够唯一标识该平面中的一点。在实际生活中,将地址看成是一个坐标。省,市,县,街道,门牌号等等。
Maven的世界中拥有数量巨大的构件,也就是平时用的一些jar,war等文件。
如果没有Maven我们只能去各个官方网站查找下载,去本地搜索,论坛上发帖询问。
想要找一个jar包,大量的时间花费在搜索,浏览网页等工作上面。因为没有统一的规范,所以无法自动化处理。
现在,Maven定义了这样一组规则:世界上任何一个构件都可以使用Maven坐标唯一标识,Maven坐标元素包括: groupld 、artifactld、version、packaing.classifier.Maven提供了一个*仓库。该*仓库包含了世界上大部分流行的开源项目构件。
在开发自己的项目的时候,也需要为其定义适当的坐标,这是Maven强制要求的,在这个基础上,其他Maven项目才能引用该项目生成的构件。
2、坐标详解
Maven坐标为各种组件引入了秩序,任何一个组件都必须明确定义自己的坐标。
Groupld:定义当前Maven项目隶属的实际项目。由于Maven中模块的概念,因此一个实际项目往往会被划分为很多模块。比如spring是一个实际项目,其对应的Maven 模块会有很多,如spring-core,spring-webmvc 等。
groupId:的表示方法与java包名的表示方法类似,通常与域名反向一一对应。
ArtifactId:该元素定义实际项目中的一个Maven模块,推荐的做法是使用实际项目名称作为atifactId的前缀。比如: spring-bean。
Version:该元素定义Maven项目当前所处的版本。
Packaging:该元素定义Maven项目的打包方式。
首先,打包方式通常与所生成构件的文件扩展名对应。Maven默认的打包方式是jat。也可以是war,ear,可执行的jar。
Classifier:该元素用来帮助定义构建输出的一些附属构件。比如javadoc和sourcesjar。这是java文档和源代码。
3、仓库的概念
●当第一次运行Maven命令的时候,你需要Intenet链接,因为它需要从网上下载一些文件。那么它从哪里下载呢?它是从Maven默认的远程库下载的。
这个远程仓库由Maven 的核心插件和可供下载的jar文件。
●对于Maven来说,仓库只分为两类:本地仓库和远程仓库。当Maven根据坐标寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在,则直接使用;如果本地没有,Maven就会去远程仓库查找,发现需要的构件之后,下载到本地仓库再使用。
如果本地仓库和远程仓库都没有,Maven就会报错。
●提示:远程仓库分为三种:*仓库,私服,其他公共库。
*仓库是默认配置下,Maven下载jar包的地方。
◆私服是另一种特殊的远程仓库,为了节省带宽和时间,应该在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。
内部的项目还能部署到私服上供其他项目使用。
●私服可以通过nexus来搭建Maven。
●为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库。
①首先确定环境安装好maven,jdk等必负的环境
②这些都准备好之后,去下载最新版本的nexus下载地址
:http://www.sonatype.org/nexus/go
本地安装的是nexus-22-01-bundle,最新的版本是nexus-2.4.0-09-bundle
③打开目录
nexus-2.4.0-09-bundlenexus-24.0-09\binsw这个目录下面你会发现有很多系统版本的nexus环增。
二、Eclipse
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
虽然大多数用户很乐于将Eclipse 当作Java 集成开发环境(IDE)来使用,但Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展Eclipse 的软件开发人员,因为它允许他们构建与Eclipse 环境无缝集成的工具。
由于Eclipse 中的每样东西都是插件,对于给Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于 Java 开发工具。尽管Eclipse 是使用Java语言开发的,但它的用途并不限于Java 语言;例如,支持诸如C/C++、COBOL、PHP等编程语言的插件已经可用,或预计将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。
基于Eclipse 的应用程序的一个突出例子是IBM Rational Software Architect,它构成了 IBMJava 开发工具系列的基础。