开发环境中使用Maven|学习笔记

简介: 快速学习开发环境中使用Maven

开发者学堂课程【项目管理工具Maven学习:开发环境中使用Maven】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/23



目录:

一、仓库

二、Eclipse

一、仓库

1、坐标

关于坐标,首先会想到平面几何,xy!!任何一个坐标都能够唯一标识该平面中的一点。在实际生活中,将地址看成是一个坐标。省,市,县,街道,门牌号等等。

Maven的世界中拥有数量巨大的构件,也就是平时用的一些jarwar等文件。

如果没有Maven我们只能去各个官方网站查找下载,去本地搜索,论坛上发帖询问。

想要找一个jar包,大量的时间花费在搜索,浏览网页等工作上面。因为没有统一的规范,所以无法自动化处理。

现在,Maven定义了这样一组规则:世界上任何一个构件都可以使用Maven坐标唯一标识,Maven坐标元素包括: groupld artifactldversionpackaing.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。也可以是warear,可执行的jar

Classifier:该元素用来帮助定义构建输出的一些附属构件。比如javadocsourcesjar。这是java文档和源代码。

3、仓库的概念

●当第一次运行Maven命令的时候,你需要Intenet链接,因为它需要从网上下载一些文件。那么它从哪里下载呢?它是从Maven默认的远程库下载的。

这个远程仓库由Maven 的核心插件和可供下载的jar文件。

●对于Maven来说,仓库只分为两类:本地仓库和远程仓库。当Maven根据坐标寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在,则直接使用;如果本地没有,Maven就会去远程仓库查找,发现需要的构件之后,下载到本地仓库再使用。

如果本地仓库和远程仓库都没有,Maven就会报错。

●提示:远程仓库分为三种:中央仓库,私服,其他公共库。

中央仓库是默认配置下,Maven下载jar包的地方。

◆私服是另一种特殊的远程仓库,为了节省带宽和时间,应该在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。

内部的项目还能部署到私服上供其他项目使用。

●私服可以通过nexus来搭建Maven

●为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库。

①首先确定环境安装好mavenjdk等必负的环境

②这些都准备好之后,去下载最新版本的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环增。

image.png

二、Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。

就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具Java Development KitJDK)。

虽然大多数用户很乐于将Eclipse 当作Java 集成开发环境IDE来使用,但Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development EnvironmentPDE),这个组件主要针对希望扩展Eclipse 的软件开发人员,因为它允许他们构建与Eclipse 环境无缝集成的工具。

由于Eclipse 中的每样东西都是插件,对于给Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。

这种平等和一致性并不仅限于 Java 开发工具。尽管Eclipse 是使用Java语言开发的,但它的用途并不限于Java 语言;例如,支持诸如C/C++COBOLPHP等编程语言的插件已经可用,或预计将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统

基于Eclipse 的应用程序的一个突出例子是IBM Rational Software Architect,它构成了 IBMJava 开发工具系列的基础。

image.png

image.png

相关文章
|
Java 数据安全/隐私保护
IoTDB服务安装教程-集群版
IoTDB服务安装教程-集群版
652 0
|
5月前
|
存储 机器学习/深度学习 缓存
性能最高提升7倍?探究大语言模型推理之缓存优化
本文探讨了大语言模型(LLM)推理缓存优化技术,重点分析了KV Cache、PagedAttention、Prefix Caching及LMCache等关键技术的演进与优化方向。文章介绍了主流推理框架如vLLM和SGLang在提升首Token延迟(TTFT)、平均Token生成时间(TPOT)和吞吐量方面的实现机制,并展望了未来缓存技术的发展趋势。
性能最高提升7倍?探究大语言模型推理之缓存优化
|
运维 Kubernetes Shell
【赵渝强老师】K8s中Pod的临时容器
Pod 是 Kubernetes 中的基本调度单位,由一个或多个容器组成,包括业务容器、基础容器、初始化容器和临时容器。临时容器用于故障排查和性能诊断,不适用于构建应用程序。当 Pod 中的容器异常退出或容器镜像不包含调试工具时,临时容器非常有用。文中通过示例展示了如何使用 `kubectl debug` 命令创建临时容器进行调试。
245 1
|
IDE 测试技术 持续交付
Python自动化测试与单元测试框架:提升代码质量与效率
【9月更文挑战第3天】随着软件行业的迅速发展,代码质量和开发效率变得至关重要。本文探讨了Python在自动化及单元测试中的应用,介绍了Selenium、Appium、pytest等自动化测试框架,以及Python标准库中的unittest单元测试框架。通过详细阐述各框架的特点与使用方法,本文旨在帮助开发者掌握编写高效测试用例的技巧,提升代码质量与开发效率。同时,文章还提出了制定测试计划、持续集成与测试等实践建议,助力项目成功。
275 5
|
数据可视化 Python
Seaborn中的时间序列图:展示数据随时间的变化趋势
【4月更文挑战第17天】使用Seaborn创建时间序列图可展现数据随时间变化的趋势。首先,确保数据集包含日期时间格式的时间戳字段。借助Pandas处理数据,然后使用Seaborn的`lineplot`创建基本图表。通过`line_kws`自定义线条样式,添加标题和轴标签以增强可视化。结合Pandas的`rolling`计算滚动平均值,`resample`进行数据重采样,或使用Statsmodels进行时间序列分析和预测,从而提升图表功能和分析深度。有效定制图表有助于更好地理解和传达数据趋势。
|
存储 消息中间件 数据挖掘
数据仓库的深度探索与实时数仓应用案例解析
大数据技术的发展,使得数据仓库能够支持大量和复杂数据类型(如文本、图像、视频、音频等)。数据湖作为一种新的数据存储架构,强调原始数据的全面保留和灵活访问,与数据仓库形成互补,共同支持企业的数据分析需求。
|
缓存 运维 监控
基于OneDNS实现上网安全防护和监控
DNS(域名系统)作为互联网的神经系统,是互联网基础设施中的关键环节。另一角度来说,DNS行为特征也是恶意软件的本质特征,思科研究报告指出,91.3%的恶意软件使用了DNS协议和远端进行通讯,实现远程的控制端通讯,窃取用户数据,伺机发起攻击等。而同时,DNS流量是企业安全管理被长期忽视的部分,网络管理员通常随便从互联网上搜索一个免费DNS,这类DNS一般只给个人用户服务,并不具备防护企业的能力。因此,企业需要一款专业的企业级DNS来覆盖安全防护盲区、提高安全能力。
899 0
基于OneDNS实现上网安全防护和监控
|
前端开发 搜索推荐 UED
前端优秀实践不完全指南 (上)
前端优秀实践不完全指南
202 0
前端优秀实践不完全指南 (上)
|
存储 Java API
走进 JDK 之 LinkedList
走进 JDK 之 LinkedList
走进 JDK 之 LinkedList
|
应用服务中间件 nginx Perl
Kubernetes----Kubernetes中通过指令式对象配置的方式管理对象
Kubernetes----Kubernetes中通过指令式对象配置的方式管理对象
139 0