1分钟快速搭建maven

Wesley13
• 阅读 603

一、mave安装

        mavn地址:http://maven.apache.org/download.cgi

        jdk:1.5以上

        操作系统:windows(本文章)

        maven 下载之后直接解压即可。


二、环境配置


1、环境变量

  MAVEN_HOME : E:\develop\apache\apache-maven-3.0.5
  MAVEN : %MAVEN_HOME%\bin 
  MAVEN_HOME 是我的maven的解压目录。

以上直接在windows 的环境变量添加,然后找到 Path,在里面添加:%MAVEN%;即可。

如图:

1分钟快速搭建maven

1分钟快速搭建maven

   安装成功后,运行: mvn -v  结果如下:

   1分钟快速搭建maven

2、修改仓库地址

    maven的仓库用来维护项目的jar包,所有的jar包都在这,一般的目录名字:.m2

    maven的默认仓库位置不太好,在c盘,需要我们挪下窝,进入maven目录(解压后目录),进入conf目录找到:

    ** settings.xml**

然后如下:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   | ----------这个是默认仓库位置------
   | Default: ~/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
      <!-- 这个是新定义的仓库位置-->
   <localRepository>E:\develop\apache\.m2</localRepository>

三、创建maven项目


   创建项目目录(这个你随意,用来放项目的): test

    进入test:cd test

    执行:

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

    运行结果如下,创建成功

E:\wier\test> mvn archetype:create -DgroupId=com.maven.test -DartifactId=hello -
DpackageName=com.maven.test -Dversion=1.0
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
....省略
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.484s
[INFO] Finished at: Tue Mar 03 11:04:39 CST 2015
[INFO] Final Memory: 14M/155M
[INFO] ------------------------------------------------------------------------

 以上省略的部分有些在下载jar包,会比较耗时,等待一会儿,执行到 build success的时候就算是成功了。

  成功后,hello目录如下:

└── hello
    └── src
        └── main
            └── java
                └── com
                  └── com
                      └── maven
                          └── App.java
     └── pom.xml

 其中pom.xml比较重要,所有的依赖都有它维护,后面会介绍详细的,这里我们只关注:

  <groupId>com.maven.test</groupId>
  <artifactId>hello</artifactId>
  <version>1.0</version>

  这个是项目的信息.


四、build项目


    进入 hello 项目

cd hello

  养成好习惯,我们在编译前,先clean下,然后依次的步骤为:clean(清理)compile(编译),Package(打包,可选)****

*clean ,清理会把项目依赖的不存在的包重新下载检测下,没有的下载。*

E:\wier\test\hello>mvn clean
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building hello 1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ hello ---
[INFO] Deleting E:\wier\test\hello\target
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.335s
[INFO] Finished at: Tue Mar 03 11:26:37 CST 2015
[INFO] Final Memory: 4M/123M
[INFO] ------------------------------------------------------------------------

  compile(编译),编译为可运行.

E:\wier\test\hello>mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building hello 1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ hello ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory E:\wier\test\hello\src\main\resources

[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ hello ---
[INFO] Compiling 1 source file to E:\wier\test\hello\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.079s
[INFO] Finished at: Tue Mar 03 11:28:37 CST 2015
[INFO] Final Memory: 11M/155M
[INFO] ------------------------------------------------------------------------

Package(打包,可选),一般到compile的时候编译就完成,若是想打包,可以执行这个命令.

E:\wier\test\hello>mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building hello 1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ hello ---

...省略
Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO]
[INFO] --- maven-jar-plugin:2.3.2:jar (default-jar) @ hello ---
[INFO] Building jar: E:\wier\test\hello\target\hello-1.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.247s
[INFO] Finished at: Tue Mar 03 11:32:45 CST 2015
[INFO] Final Memory: 13M/155M
[INFO] ------------------------------------------------------------------------

   我们来运行测试看下:

E:\wier\test\hello>java -cp target\hello-1.0.jar com.maven.test.App
Hello World!

   最经典的 hello world 就出来了。


五、加入新包


项目需要引入新包,此时我们维护pom.xml配置就可以,dependencies 用来维护引入包。

比如我们要加入spring-data-mongodb 项目的所有依赖包,

找到**pom.xml,**打开,找到dependencies,加入如下配置:

<!-- spring-data-mongodb 的jar引入-->
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>1.5.5.RELEASE</version>
    </dependency>

 保存后,运行下: 

mvn clean

maven就会自动下载相关的jar,并引入到项目


六、包版本维护


项目有时候需要用到最新的包,此时只需要 找到对应的dependency ,然后修改下 version即可,然后再执行下:mvn clean

比如我们要把spring-data-mongodb 更新到最新的1.6.2.RELEASE

<!-- spring-data-mongodb 的jar引入-->
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <!-- 更改版本号-->
        <version>1.6.2.RELEASE</version>
    </dependency>

保存之后执行:

mvn clean

七、导入eclipse


开发工具都会用到eclipse,目前的项目是没办法导入到eclipse ,目录结构不适合eclipse 。

 第一步,让hello项目改变为eclipse目录结构.执行命令:

cd hello
mvn eclipse:eclipse

 运行后目录结构如下:

 1分钟快速搭建maven

第二步,配置eclipse

安装maven就不介绍了,网上自己mark, 这个安装介绍不错:maven安装

    我只说下基本配置,三个地方需要处理下。

    位置1:  maven安装目录

Window  -->  Preferences -->Maven -->Installations

eclipse 此处设置maven的安装地址,点击add ,设置maven的安装目录.

1分钟快速搭建maven

位置2: Settings ,设置maven 的 setting.xml 配置文件

Window  -->  Preferences -->Maven -->User Settings

   点击Browe,指定maven的setting.xml配置.

 1分钟快速搭建maven

 位置3:指定maven仓库地址

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

  点击new ,新创个name为:M2_REPO   path为:E:\develop\apache\.m2

path为仓库地址。

1分钟快速搭建maven

   以上配置完毕之后,就可以导入项目到eclipse 了。



八、配置说明

1、pom.xml说明

      hello的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.maven.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>

    <!-- spring-data-mongodb 的jar引入-->
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>1.6.2.RELEASE</version>
    </dependency>

  </dependencies>
</project>

 Ø project:pom.xml文件中的顶层元素;
Ø modelVersion:指明POM使用的对象模型的版本。这个值很少改动。
Ø groupId:指明创建项目的组织或者小组的唯一标识。GroupId是项目的关键标识,典型的,此标识以组织的完全限定名来定义。比如,org.apache.maven.plugins是所有Maven插件项目指定的groupId。
Ø artifactId:指明此项目产生的主要产品的基本名称。项目的主要产品通常为一个JAR文件。第二,象源代码包通常使用artifactId作为最后名称的一部分。典型的产品名称使用这个格式: (比如:myapp-1.0.jar)。
Ø version:项目产品的版本号。Maven帮助你管理版本,可以经常看到SNAPSHOT这个版本,表明项目处于开发阶段。
Ø name:项目的显示名称,通常用于maven产生的文档中。
Ø url:指定项目站点,通常用于maven产生的文档中。
Ø description:描述此项目,通常用于maven产生的文档中。  

2、maven生命周期

validate:验证工程是否正确,所有需要的资源是否可用。
compile:编译项目的源代码。  
test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
Package:把已编译的代码打包成可发布的格式,比如jar。
integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。
verify:运行所有检查,验证包是否有效且达到质量标准。
install:把包安装在本地的repository中,可以被其他工程作为依赖来使用。
Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
clean:清除先前构建的artifacts(在maven中,把由项目生成的包都叫作artifact)。
site:为项目生成文档站点。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
P2P技术揭秘.P2P网络技术原理与典型系统开发
Modular.Java(2009.06)\.Craig.Walls.文字版.pdf:http://www.t00y.com/file/59501950(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.t00y.com%2Ffile%2F59501950)\More.E
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这