Maven基础知识和环境搭建
基本概念和生命周期
Maven是现在流行的构建自动化工具,提供了软件构建过程中全生命周期的管理。
基础目录结构
基础目录结构如下:
- 根目录:存放pom.xml 和所有的子目录
- ${basedir}/src/main/java: java源代码
- ${basedir}/src/main/resources: 资源文件,比如属性文件,配置文件
- ${basedir}/src/test/java:单元测试代码
- ${basedir}/src/test/resources:测试资源
编译打包以后会默认的产生 jar文件,并且编译生成的classes文件会放置在${basedir}/target/classes 下面, JAR 文件会放在 ${basedir}/target 下面。
Maven安装和使用
- 下载Apache Maven包并且解压。
- 配置Maven的环境变量,把bin目录加到默认的PATH当中。
- 命令行中使用mvn -version查看安装的版本。
- 配置解压目录下/conf/setting.xml中的参数,包括本地仓库目录,镜像源(中央仓库,私服...)
- 新建Maven项目:首次新建某个类型(archetype)maven项目需要联网,maven要从网上下载相应的依赖包。Archetype 可以理解成项目的模型。 Maven 为我们提供了很多种的项目模型,包括从简单的 Swing 到复杂的 Web 应用。mvn archetype:generate -DgroupId=com.mycompany.helloworld -DartifactId=helloworld -Dpackage=com.mycompany.helloworld -Dversion=1.0-SNAPSHOT
- 切换到对应的工程根目录,构建Maven项目(mvn package),当你第一次运行 maven 的时候,它会从网上的 maven 库 (repository) 下载需要的程序,存放在你电脑的本地库 (local repository) 中,所以这个时候你需要有 Internet 连接。Maven 默认的本地库是 ~/.m2/repository/。如果settings里配置了本地库,则下载到对应的配置文件夹当中。
- 第6步结束以后, maven 在 工程根目录下面建立了一个新的目录 target/ ,构建打包后的 jar 文件 xxx-1.0-SNAPSHOT.jar 就存放在这个目录下。编译后的 class 文件放在 target/classes/ 目录下面,测试 class 文件放在 target/test-classes/ 目录下面。
eclipse集成maven
最新版本的eclipse已经内嵌maven插件,并且指向默认的Maven。但通常我们还是单独下载maven,然后通过preference指向到下载的Maven。
- 安装插件
- 到eclipse preference的maven 配置下指定maven的解压目录和setting.xml目录
- 配置本地仓库
- 配置仓库:中央仓库,私服(公司级别),镜像,项目仓库(单独开发,直接在项目pom文件中引用中央仓库)
- 新建maven项目:指定archetype,groupId,packageID,version,首次新建特定类型项目需要联网下载相应的项目模型。
- 使用pom管理项目构建依赖包,编写程序,保存pom时会自动从配置的仓库中下载依赖包。
- 运行程序,eclipse中的运行等同于启动mvn package命令,会自动下载相应包到指定仓库当中,并打包生成相应的classes和jar包。
maven仓库源配置
- Settings中配置中央仓库,普通仓库,私服,镜像
- Projects中直接引用中央仓库。
通常情况下,公司会搭建私服,然后配置settings引用私服。对于单独开发的程序员来说,可以在settings中配置开源中央仓库或者是镜像。也可以直接在项目的pom中指定仓库。第一种方式我没有成功过,第二种方式解决了问题,暂且先用第二种方式,以后有时间再仔细研究Maven仓库配置。
1. 首先在项目的pom.xml文件中配置开源仓库
<repositories>
<repository>
<id>jboss</id>
<url>http://repository.jboss.com/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
2. 可以查看Maven repo视图,看到项目下面有相应的仓库,选中仓库,右键选择更新仓库index可以让用户在pom dependency里直接搜索到想要添加的jar包
3. 如果搜索不到相应的jar包,可以打开网站查询jar包的配置,点开即可查看相应内容
http://mvnrepository.com/
4. 在项目中为pom添加相应依赖包,保存,eclipse会自动开启下载。
Maven基础知识和环境搭建的更多相关文章
- Appium基础知识与环境搭建
基础知识: 环境搭建: 1.安装jdk,配置java环境变量 (1)新建变量"JAVA_HOME",变量值"D:\Frameworks\Java\jdk1.8.0_18 ...
- Spring MVC基础知识整理➣环境搭建和Hello World
概述 Spring MVC属于SpringFrameWork的产品,采用Model-View-Controller进行数据交互,已经融合在Spring Web Flow里面.Spring 框架提供了构 ...
- SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)
SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,SpringBoot致力于在蓬勃发 ...
- Android 基础知识 -- Linux环境搭建
Android 开发工具下载网站:http://www.androiddevtools.cn/ 1 JDK 1.1 下载JDK,解压后放到/usr/lib/jvm/目录 sudo mv jdk1.7. ...
- Maven基础知识详解
1. 简介 Maven在Java领域的应用已经非常广泛了,有了Maven的存在是的开发人员在搭建.依赖.扩展和打包项目上变得非常简单. 2. Windows安装Maven 下载安装包 http ...
- maven基础知识
1.maven基础知识 1.1maven坐标 maven坐标通常用冒号作为分割符来书写,像这样的格式:groupId:artifactId:packaging:version.项目包含了junit3. ...
- Eclipse+Tomcat+MAVEN+SVN项目完整环境搭建
1.JDK的安装 首先下载JDK,这个从sun公司官网可以下载,根据自己的系统选择64位还是32位,安装过程就是next一路到底.安装完成之后当然要配置环境变量了. ————————————————— ...
- SSM 框架-03-MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建
SSM 框架-03-MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建 如果你是使用 Eclipse 你需要先安装 MyEclipse,请参考:SSM 框架-02-MyEclipse ...
- Python基础学习之环境搭建
Python如今成为零基础编程爱好者的首选学习语言,这和Python语言自身的强大功能和简单易学是分不开的.今天我们将带领Python零基础的初学者完成入门的第一步——环境搭建.本文会先来区分几个在P ...
随机推荐
- 建立exception包,编写TestException.java程序,主方法中有以下代码,确定其中可能出现的异常,进行捕获处理。
package exception; public class TestException { public static void main(String[] args) { for(int i=0 ...
- Cheatsheet: 2014 02.01 ~ 02.28
Database Managing disk space in MongoDB When to use GridFS on MongoDB .NET The Past, Present, and Fu ...
- SQL生成随机数
ALTER FUNCTION [dbo].[ufn_Random] ( @A INT, @B INT ) RETURNS INT AS BEGIN /* 功能:生成随机数 */ ,) , SELECT ...
- printf()函数
printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息. printf()函数的调用格式为: printf("<格式化字符串>", <参 ...
- mysql以ROOT权限提权方法
今天feng问了一个问题,mysql root权限运行,直接root服务器吧,SSH登录 正好上网查一下相关的资料: mysql .x里面引入了一个system函数,这个函数可以执行系统命令,当mys ...
- LINUX DIFF命令详解
刚才在和公司做离线IP对比,最后手工了,感觉还是比较麻烦的,遇到数据很大的时候不能手工进行了 本想用linux下的DIFF来进行对比,发现结果很乱.时间很紧最后还是手工了. 现在忙完要认认真真学习一下 ...
- slogan
nasa to infinity and beyond Werner Vogels at amazon all things distributed Kelly Johnson at Lockheed ...
- Codeforces Round #377 (Div. 2) D. Exams 二分
D. Exams time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...
- 关于PHP HTML <input type="file" name="img"/>上传图片,图片大小,宽高,后缀名。
在我们的系统中,不免要上传图片,视频等文件,在上传中,需要做的一些判断,文件大小等方面. 注意: 在php.ini 中的post_max_size,upload_max_filesize默认为2M,在 ...
- effect c++ 口诀。
常用条款,写成口诀,记住.知其所以,也要时时使用. 1)习惯c++: 联替const初. 2)构造,复制,析构: 要知默,构赋析. 若不需,明拒绝. 构析不调虚. 异不逃析构. 基析要虚函. 赋值操, ...