maven环境快速搭建

2023-10-27

最近,开发中要用到maven,所以对maven进行了简单的学习。因为有个maven高手在身边,所以,很快就上手了,我这里算是自我总结吧。关于maven是什么东东,请参考其它文章。

----------------准备工作-------------

Jdk  1.5以上java开发环境。

Eclipse IDE 一个。

Maven 3.0.3下载地址: http://maven.apache.org/docs/3.0.3/release-notes.html

----//快速搭建步骤

 

第一步:配置maven环境

 

将下载文件解压,然后设置maven环境

如果你配置过jdk的话,这里对你应该不难。如我的maven环境为:F:\maven\apache-maven-3.0.3

我的电脑-----属性----高级-----环境变量-----环境变量-----新建

变量名:M2_HOME

变量值:F:\maven\apache-maven-3.0.3

找到path 

在环境变量值尾部加入:;%M2_HOME%\bin;---前面注意分号

当然,你也可以直接在path 路径下加入:;F:\maven\apache-maven-3.0.3\bin  只是上面的方式更优雅一点。

我新建立

打开命令提示符(开始---运行---cmd,检查我们的java环境和maven环境是否有误。

 

 

第二步:修改仓库位置

 

修改我们仓库地址,仓库用于存放我们项目所依赖的所有jar包。

我的仓库路径:F:\maven\repo----这个路径是我自己创建,你可以将路径创建在任何位置。

我们打开…\apache-maven-3.0.3\conf\目录下的setting.xml文件,设置成我们创建的仓库路径

下面我们用一个命令验证一下。打开命令提示符,输入:mvn help:system 

该命令会打印出所有的java系统属性和环境变量。这些信息对我们日常的编程工作很有帮且。

如果运行的过程中没有错误,打开我们仓库(F:\maven\repo)会发现里面多了一些文件。这些文件就是我们从maven的中央仓库下载到本地仓库的。

 

第三步:创建maven项目

创建一个我们自己的项目。

我们通过maven命令行方式创建一个项目

mvn archetype:create -DgroupId=com.chongshi.test -DartifactId=hello -DpackageName=com.chongshi.test -Dversion=1.0

 

因为是第一次构建项目,所有依赖的jar包都要从maven的中央仓库下载,所以需要时间等待。等以后我们的本地仓库中积累了我们常用的jar包后,我们的开发将变得非常规范和方便。^_^!!

 

借助下载jar包的时间,我们来了解一下pom.xml文件。

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

     <groupId>com.chongshi.test</groupId>
      <artifactId>hello</artifactId>
      <version>1.0</version>
   <packaging>jar</packaging>

  <name>hello</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

Ø project:pom.xml文件中的顶层元素; 
Ø modelVersion:指明POM使用的对象模型的版本。这个值很少改动。
Ø groupId:指明创建项目的组织或者小组的唯一标识。GroupId是项目的关键标识,典型的,此标识以组织的完全限定名来定义。比如,org.apache.maven.plugins是所有Maven插件项目指定的groupId。 

Ø artifactId:指明此项目产生的主要产品的基本名称。项目的主要产品通常为一个JAR文件。第二,象源代码包通常使用artifactId作为最后名称的一部分。典型的产品名称使用这个格式: <artifactId>- <version>. <extension>(比如:myapp-1.0.jar)。 

Ø version:项目产品的版本号。Maven帮助你管理版本,可以经常看到SNAPSHOT这个版本,表明项目处于开发阶段。 

Ø name:项目的显示名称,通常用于maven产生的文档中。 

Ø url:指定项目站点,通常用于maven产生的文档中。 

Ø description:描述此项目,通常用于maven产生的文档中。

 

对于一个项目中只有下面的一部分是是我们需要关注的:

<groupId>com.chongshi.test</groupId>

 <artifactId>hello</artifactId>

 <version>1.0</version>

 

第四步:编译项目代码

我们的项目已经创建完成。但我们点开目录发现,它并不是我们eclipse所需要的项目目录格式。我们需要把它构建成我们eclipse可以导入的项目。

在命令提示符下进入到我们的创建的项目目录(F:\maven\hello)下,执行:mvn clean compile

Clean 告诉maven清理输入出目录target/,compile告诉maven编译项目主代码。

不要急,我们又需要一段时间来下载,相关jar包。^_^!第一次用maven要学会淡定。

 

项目是编译完了,但项目的目录结构还不是我们想要的eclipse的项目结构,是不能导入到eclipse中的。所以,还需要执行一个命令:mvn eclipse:eclipse

 

命令执行完成后就得我们需要的项目目录了。

 

第五步:导入eclipse工具

 

打开的我们的eclipse工具。

先配置maven仓库路径

Window----Perferences-----java-----Build Path-----Classpath Variables

New一个变量的类路径。

Name :M2_REPO   注意这个名字必须要大写。

Path :F:/maven/repo  点击“Folder…”找到有本地仓库的位置。

 

下面,可以导入我的hello项目了。Eclipse如何导入项目,我这里就不说了,如果你是个java开发人员的话。

 

第六步:包的更新与下载

 

打开项目发现我们junit 是3.8.1的,有点老了。那我想换成4.7的,如何通过maven的方式更换呢。其实,很简单,打开我们项目下的的pom.xml文件。

……
<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
……

更改变,junit的版本号,然后重新执行:mvn eclipse:eclipse  

Maven 中央仓库地址:http://search.maven.org

 

假如,我们想下载一个struts jar包。在搜索框内搜索strruts ,会要列出中央仓库中的所有struts版本。

列表的格式与我们pom.xml配置文件的格式是对应的。

 

 

 

 

我们在pom.xml中加入:

<groupId>stuts</groupId>

 <artifactId>struts-scripting</artifactId>

 <version>1.0.1</version>

然后更新项目就可从中央仓库下载我们想要的任意jar包(必须是开源的包)

 

继续学习内容:

1. 如何创建一个web项目?

  如果想让maven应用到项目开发中,这个是必须的。

2. 如何使用jeety?

  maven提供的一个容器,类似于tomcat

3. 如何创建一个代理仓库?

  如果是团队开发,这个很有必要,我们不可能每次都到中央仓库拿包,那样很慢,如果开发人员A已经下了某包,开发人员B还要下;创建代理仓库,A第一次下的包会存入代理仓库中,B要用时直接从代理仓库取就行。



================================================

FROM : http://www.cnblogs.com/fnng/archive/2011/12/02/2272610.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

maven环境快速搭建 的相关文章

  • 通过 WebStart 运行时 Java 7 更新 55 JacORB 错误

    自从更新到 Java 7 update 55 以来 我无法运行我的 WebStart java 应用程序 当通过 WebStart 启动时 该应用程序在 Java 7 update 51 下运行良好 当在 WebStart 之外启动时 它还
  • 如何找出导致 poi 损坏 xlsx / xlsm 文件的原因

    我遇到的问题是 Apache POI 仅通过读取和写入就 损坏 了 xlsm xlsx 文件 例如使用以下代码 public class Snippet public static void main String args throws
  • 将 GAE/J 上的 pdfjet 生成的 PDF 文件上传到 Google Docs

    我需要将 PDF 文件上传到用户谷歌文档 该文件是由谷歌应用引擎上的 pdfjet 生成的 我想出使用 pdfjet for gae j 生成 pdf pdfjet 使用流来创建 pdf 无论如何 是否可以将流转换为文件 以便我可以上传给用
  • 添加@Named时@SessionScoped不起作用

    考虑以下支持 bean import javax faces bean ManagedBean import javax faces bean SessionScoped ManagedBean SessionScoped public c
  • setSize() 不起作用?

    我有一个程序 需要两个按钮 一个是常规按钮 另一个具有根据鼠标悬停而变化的图片 目前 由于图片很大 JButton自定义也很大 我可以更改自定义的大小并保持图像 和翻转图像 成比例吗 我尝试过 setSize 但它没有任何作用 对于任何反馈
  • 如何生成源代码来创建我正在调试的对象?

    我的典型场景 我处理的遗留代码有一个错误 只有生产中的客户端才会遇到 我附加了一个调试器并找出如何重现该问题their系统给定their输入 但是 我还不知道为什么会发生错误 现在我想在本地系统上编写一个自动化测试来尝试重现然后修复错误 最
  • Spring JSON序列化、Gson反序列化

    我目前在某些内部对象的反序列化方面遇到问题 在春天 我在使用输出之前初始化所有对象 ResponseBody 例如 这是一个响应 id 1 location id 1 extra location data id 2 location 1
  • InflateException 膨胀类 android.support.design.widget.CoordinatorLayout 时出错

    E AndroidRuntime 致命异常 main 进程 com atech a business PID 30662 java lang RuntimeException 无法启动活动 ComponentInfo com atech a
  • 如何实现可运行队列

    我正在尝试实现一个可运行队列 在异步任务期间依次执行 意味着队列中的下一个将在另一个完成后执行 我编写了一个管理器来管理这些可运行对象和本身就是可运行对象的任务 然后 我获取异步任务中的第一个任务并运行它 希望它能够在队列中运行 但是它最终
  • Tomcat:Java 静态变量作用域、应用程序范围还是会话范围?

    java 静态变量是否在使用相同 web 应用程序的所有会话之间共享 或者每个会话都有自己的静态变量版本吗 换句话说 Tomcat 是为每个会话创建一组新的类 还是为整个 Web 应用程序创建一组新的类 Tomcat 创建一个ClassLo
  • JP QL - 一对多关系中的过滤结果

    我在尝试构建 JPQL 查询时陷入困境 并希望比我拥有更多 JPA 经验的人能够提供帮助 考虑以下两个实体 class Author String name OneToMany mappedBy author Set
  • 给定一个 IP 地址列表,如何找到最小值、最大值?

    在Java中 我有一个ip地址的数组列表 我如何找到最小值和最大值 我已经使用了 Collection min 但在以下情况下它不起作用 192 168 0 1 lt min 192 168 0 250 192 168 0 9 lt max
  • 处理大数据表时应该如何使用Hibernate Mapping

    问题定义 我有一个包含大量数据 超过 100 000 行 的数据库表 表结构如下 AppID DocID DocStatus 1 100 0 1 101 1 2 200 0 2 300 1 每个 applicationID 可能有数千个文档
  • Spring Boot 1.4:Liquibase完成后的执行方法

    我有一个基于 Spring Boot 1 4 0 的项目 该项目使用 Liquibase liquibase 完成后是否可以执行方法 像 Bean 后处理器之类的东西 我想要做的是当应用程序在开发模式下启动时向我的数据库添加一些数据 在开发
  • 如何在 jax-ws 客户端中隐藏(可能)由 jax-ws 库引起的警告

    我正在使用 netbeans 在我的应用程序中生成 Web 服务客户端 我的程序使用 jax ws 库来设置调用 Web 服务的超时 出现问题是因为每当我启动这个程序时它都会生成很多这样的警告消息 2010 年 12 月 13 日下午 4
  • 如何在调整大小时更改 JLabel 字体大小以填充 JPanel 可用空间?

    这里有一个类似的问题 如何更改 JLabel 的字体大小以获取最大大小 https stackoverflow com questions 2715118 how to change the size of the font of a jl
  • 计算事件之间的天数 - Android

    我一直在研究 Android API 并一直在寻找一种方法来计算当前日期和未来日期之间的天数 我对 android 还很陌生 而且我已经有几年没有做过 java 了 计算这个最简单的方法是什么 Thanks 最简单的方法是使用乔达时间 ht
  • 根据另一个列表的顺序对列表进行排序[重复]

    这个问题在这里已经有答案了 我需要对列表进行排序Person对象 List
  • 运行外部进程的非阻塞线程

    我创建了一个 Java GUI 应用程序 它充当许多低级外部进程的包装器 该实用程序按原样运行 但迫切需要一项重大改进 我希望我的外部进程以非阻塞方式运行 这将允许我并行服务其他请求 简而言之 我希望能够在生成数据时处理来自外部进程的数据
  • Spring Boot 和安全性以及自定义 AngularJS 登录页面

    我正在为 Spring Security 实现一个自定义 AngularJS 登录页面 但遇到身份验证问题 遵循本教程 示例 以及他们的示例在本地运行良好 https github com dsyer spring security ang

随机推荐

  • 接口处理请求时间过长,前台响应“服务器超时”的解决办法

    数据计算量过大 接口响应时间过长时 网关会报超时 页面就挂了 没有很好的解决办法 所以采用了如下解决办法 1 将原本的一个接口拆分为3个 三个接口异步操作 三个接口作用及描述如下 接口1 获取本地异步操作的唯一标识 唯一且加密后的code值
  • app php与html5,uniapp与HTML的区别是什么

    区别 1 uniapp是一个框架 而HTML是一种标记语言 2 组件 标签有差异 例p改成view span font改成text a改成navigator img改成image 3 uniapp不支持dom操作 HTML支持 本教程操作环
  • [2023.7.17]7 CPU Front-End Optimizations

    CPU前端 FE 组件在第3 8 1节中进行了讨论 大多数情况下 CPU FE的低效率可以描述为后端等待执行指令 但FE无法提供指令的情况 结果是 在没有执行任何实际有用工作的情况下浪费了CPU周期 由于现代处理器是4宽度 即 它们每个周期
  • 【汤圆名叫“小刺猬”和“雪化了”】——吃另类汤圆 听奇特民俗

    听奇特民俗 TITLE 汤圆名叫鈥溞 题澓外溠 蒜潯库斺敵粤砝嗵涝 听奇特民俗 gt 把汤圆微出创意来 吃另类汤圆听奇特民俗感世界之大无奇不有 叹那些正在消失的民俗 我挺懒的 而且又不是那么爱吃汤圆 减肥 所以就没有那么勤快来DIY 但节总
  • python字符串与数字类型转换

    str与int i 10 s str i s 10 s 1 i int s i 1 str与float st 4 t float st t 0 4 st 0 4 t float st t 0 4 t 0 4 st str t st 0 4
  • libevent (一) socket属性设置与初始化操作

    socket属性设置与初始化操作 libevent是一个事件触发的网络库 适用于windows linux bsd等多种平台 内部使用select epoll kqueue等系统调用管理事件机制 著名分布式缓存软件memcached也是li
  • 小程序怎么搭建?学会这些技巧,开启创业之路

    随着移动互联网的发展 小程序成为了一种重要的创业工具 小程序具有开发周期短 运营成本低 用户体验好等特点 被越来越多的企业和个人用来实现商业价值 本文将通过一个案例来介绍小程序的搭建技巧 帮助创业者更好地开启创业之路 案例介绍 某家生鲜电商
  • CentOS下安装配置Phabricator

    1 下载快捷安装sh http download csdn net detail u012547633 9882697 把centos版的phabricator安装脚本下载到opt目录并安装 cd opt chmod 777 install
  • java版本号分段比较_版本号判断,例如:1.0.0比较1.0.1

    有的时候可能会判断客户端的版本号信息 多位数的版本号判断做个记录 代码分享者 zzp 注意 Java中应该吧分割的正则使用 来分割小数点字符串 分割 NSArray curVerArr currentVersion componentsSe
  • 了解Chat GPT

    CHATGPT是一款强大的人工智能语言模型 可以回答任何问题和开启有趣的对话 以下是一些使用CHATGPT的技巧和提示 提问明确 CHATGPT能够回答任何问题 但它需要清晰和明确的问题来给出准确的答案 因此 在提问时要尽可能明确和具体 尝
  • 【JDBC】-- Java连接数据库方法(Mysql8+idea)

    Java Database Connectivity 简称JDBC 是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口 提供了诸如查询和更新数据库中数据的方法 Java如何连接数据库 下面使用Mysql8版本 编译器使用ide
  • Flink_CDC搭建及简单使用

    Flink CDC搭建及简单使用 1 CDC简介 CDC Change Data Capture 在广义的概念上 只要能捕获数据变更的技术 都可以称为 CDC 但通常我们说的CDC 技术主要面向数据库 包括常见的mysql Oracle M
  • Dubbo-admin 新版本启动问题记录

    Dubbo admin 新版本启动问题记录 文章目录 Dubbo admin 新版本启动问题记录 1 安装步骤 a 下载zookeeper b 下载并编译dubbo 2 总结 1 安装步骤 直接按照官网下载下来的软件 并按照说明安装软件会存
  • Vagrant虚拟机安装,磁盘扩容以及局域网内访问教程

    1 下载vagrant以及virtualBox 配上vagrant virtualBox线上下载地址 vagrant下载地址 virtualBox下载地址 2 开始准备安装镜像文件 找到需要安装的系统镜像文件 配上vagrant镜像地址 v
  • Linux strace 命令 说明

    Strace是Linux中一个调试和跟踪工具 它可以接管被跟踪进程执行的系统调用和收到的信号 然后把每一个执行的系统调用的名字 参数和返回值打印出来 可以通过strace找到问题出现在user层还是kernel层 strace 显示这些调用
  • 集群基础3——haproxy负载均衡apache

    文章目录 一 环境说明 二 安装配置httpd 三 安装配置haproxy 四 验证http负载均衡 五 配置https负载均衡 六 haproxy网页监控 6 1 监控参数详解 6 2 页面操作 一 环境说明 使用haproxy对apac
  • jmeter中body data使用post请求的json格式提交

    之前介绍过jmeter中post的默认提交形式form表达提交 Content type application x www form urlencoded 使用直接 填写参数的形式 本次介绍的是jmeter中body data使用也就是j
  • 学历和工作年限决定了程序员的工资水平吗?

    根据中国互联网络信息中心 CNNIC 近日发布的第 45 次 中国互联网络发展状况统计报告 可知 截至 2020 年 03 月 中国网民规模为 9 04 亿 较 2018 年底增加 7508 万 其中农村网民规模达 2 55 亿 占网民整体
  • 时序预测

    时序预测 MATLAB实现SVM 支持向量机 时间序列多步预测 目录 时序预测 MATLAB实现SVM 支持向量机 时间序列多步预测 预测效果 模型描述 程序设计 学习总结 参考资料 预测效果 模型描述 Options 可用的选项即表示的涵
  • maven环境快速搭建

    最近 开发中要用到maven 所以对maven进行了简单的学习 因为有个maven高手在身边 所以 很快就上手了 我这里算是自我总结吧 关于maven是什么东东 请参考其它文章 准备工作 Jdk 1 5以上java开发环境 Eclipse