marven系列1-安装教程

下载

marven下载地址
选择Binary zip archive apache-maven-3.5.4-bin.zip下载即可

marven安装配置

1、解压mavern安装包到指定目录,我的是解压到 D:\mysoftware\marven\apache-maven-3.5.2 目录下

2、配置Maven环境变量
在计算机-》属性-》高级系统设置-》环境变量-》系统变量-》新建
变量名:M2_HOME
变量值:D:\mysoftware\marven\apache-maven-3.5.2
然后在path变量值后添加;%M2_HOME\bin; //不用忘记前面有一个分号

3、检查安装是否正确
cmd运行
mvn -v

Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:1
3+08:00)
Maven home: D:\mysoftware\marven\apache-maven-3.5.2\bin\..
Java version: 1.7.0_79, vendor: Oracle Corporation
Java home: D:\mysoftware\jdk1.7.0_79\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

我的marven版本是3.5.2,当前最新的是3.5.4

4、修改本地仓库的位置
本地仓库的默认位置是C:\Users\用户名.m2\repository
这个位置对我们而言很不友好,故修改仓库位置到指定的文件夹
在安装Maven的目录下找到conf文件夹,在文件夹中找到settings.xml文件,更改默认的仓库位置

localRepository节点默认是被注释掉的,需要把它移到注释之外,然后将localRepository节点的值改为指定目录

<localRepository>D:\mysoftware\marven\apache-maven-3.5.2\repository</localRepository>

cmd
mvn help:system
D:\mysoftware\marven\apache-maven-3.5.2\repository 文件夹下就出现了很多的文件,这些是marven从中央仓库位置下载到本地的

myeclipse配置marven

myeclipse下marven环境的配置是
windows-》preference-》Myeclipse-》Marven4MyElsipse
勾选Enable Marven4MyElsipse features
右窗口最下边有marven默认的jdk,选择的自己的jdk安装路径
installations-》add添加marven 选择marven安装路径
usersetting-》D:\mysoftware\marven\apache-maven-3.5.2\conf\settings.xml

marven构建项目

由于不可抗力因素,我们可能无法访问中央仓库的地址,所以修改中央仓库的地址为阿里云的镜像地址
修改安装目录下conf/setting.xml文件
在mirrors节点中添加一下内容

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

1、普通方式构建java项目
mvn archetype:create 在maven3.0.5以上版本舍弃了,使用generate生成项目
mvn archetype:generate

选择archetype,默认是7 quickstart
Maven常用 三种archetype说明

创建java项目,选择默认按enter执行
创建web项目,输入webapp,进行筛选,选择一个输入编号,按enter执行

输入groupId,artifactId个version的值
Define value for property ‘groupId’: cn.wy
Define value for property ‘artifactId’: mvtest
Define value for property ‘version’ 1.0-SNAPSHOT: : 1.0
Define value for property ‘package’ cn.wy: :回车
Confirm properties configuration:
groupId: cn.wy
artifactId: mvtest
version: 1.0
package: cn.wy
Y: : 回车
项目构建完成

GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。

ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
一般GroupID就是填com.leafive.test这样子。

groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。

  groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。
  比如我创建一个项目,我一般会将groupId设置为cn.wy,cn表示域为中国,wy是我个人姓名缩写,artifactId设置为testProj,表示你这个项目的名称是testProj,依照这个设置,你的包结构最好是cn.wy.testProj打头的,如果有个StudentDao,它的全路径就是cn.wy.testProj.dao.StudentDao、

java项目构建成功,目录结构如下

mvtest 
  -src
        -main
                -java
                    -cn
                        -wy
                            App.java
        -test
                -java
                    -cn
                        -wy
                            App.java
  -pom.xml

目前Maven只是帮我们生成了src/main/java(存放项目的源代码)和src/test/java(存放测试源代码)这两个目录,但实际项目开发中我们一般都会有配置文件,例如log4j.properties,所以我们还需要手动创建src/main/resources(存放项目开发中用到的配置文件,如存放log4j.properties等)和src/test/resources(存放测试时用到的配置文件)

mvtest 
  -src
        -main
                -java
                    -cn
                        -wy
                            App.java
                -resource
        -test
                -java
                    -cn
                        -wy
                            App.java
                -resource
  -pom.xml

2、快捷方式构建java项目
mvn archetype:generate -DgroupId=cn.wy -DartifactId=mvtest2 -DinteractiveMode=false

-DarchetypeArtifactId=maven-archetype-quickstart 可加可不加,默认的

3、建立一个web应用
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=cn.wy -DartifactId=webtest
输入版本号
回车确认
回车
web项目构建成功,目录结构如下

webtest 
  -src
        -main
                -webapp
                       -WEB-INF
                             web.xml
                       index.jsp
                -resource
  -pom.xml

创建好的JavaWeb项目中目前只有src/main/resources目录,因此还需要手动添加src/main/java、src/test/java、src/test/resources

webtest 
  -src
        -main
                -java
                -webapp
                       -WEB-INF
                             web.xml
                       index.jsp
                -resource
        -test
                -java
                -resource
  -pom.xml

pom.xml文件说明

 通过Maven构建的JavaProject,在项目的根目录下都会存在一个pom.xml文件,进入myapp目录,可以看到有一个pom.xml文件,这个文件是Maven的核心。

1、pom意思就是project object model。
2、pom.xml包含了项目构建的信息,包括项目的信息、项目的依赖等。
3、pom.xml文件是可以继承的,大型项目中,子模块的pom.xml一般都会继承于父模块的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>cn.wy</groupId>
  <artifactId>mvtest</artifactId>
  <version>1.0</version>
  <packaging>jar</packaging>

  <name>mvtest</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>

pom.xml文件的节点元素说明:

<project>       pom文件的顶级节点
<modelVersion>     object model版本,对Maven2和Maven3来说,只能是4.0.0 
<groupId>       项目创建组织的标识符,一般是域名的倒写
<artifactId>      定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目
<version>        当前项目的版本,SNAPSHOT,表示是快照版本,在开发中

<packaging>      打包的方式,有jar、war、ear等
<name>         项目的名称
<url>         项目的地址

<properties>    属性配置,比如:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<dependencies>   构建项目依赖的jar

marven打包发布项目

Maven帮我们创建的JavaWeb项目是一个空的项目,只有一个index.jsp页面,我们使用Maven将Web项目打包发布运行。

在命令行切换到webtest目录,执行:

mvn package

构建成功后,webtest目录目录下多了一个target目录,在这个目录下会打包成webtest目录.war,把这个war包拷贝到Tomcat的发布目录下就可以运行了。

不过如果没装Tomcat或者不想麻烦的话,我们可以在Web项目中集成Jetty发布运行,首先在pom.xml文件中配置Jetty插件,如下:

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>cn.wy</groupId>
  <artifactId>webtest</artifactId>
  <packaging>war</packaging>
  <version>1.0</version>
  <name>webtest Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>webtest</finalName>
     <!--添加插件配置-->
    <pluginManagement>
        <!--配置Jetty-->
           <plugins>
            <plugin>
              <groupId>org.mortbay.jetty</groupId>   
              <artifactId>maven-jetty-plugin</artifactId>
             </plugin>
           </plugins>
     </pluginManagement>
 <!--添加插件配置-->

  </build>
</project>

cmd中进入webtest目录,然后运行

mvn jetty:run

在浏览器输入localhost:8080/webtest,可以看到Hello World

点赞

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注