Maven的使用

来源:互联网 发布:我的世界js下载手机版 编辑:程序博客网 时间:2024/06/05 23:49
maven中把项目作为对象来管理


JDK安装


maven安装
见文档: apache-maven-3.2.1


确认jdk是否已安装?
下载Maven
地址:http://maven.apache.org/download.html
版本:Maven3.0
安装Maven
见Maven安装过程文档


maven安装文件解析:
bin:含有mvn运行的脚本
boot:含有plexus-classworlds类加载器框架
conf:含有settings.xml配置文件
lib:含有Maven运行时所需要的java类库
LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍


设置MAVEN_OPTS环境变量: -Xms128m -Xmx512m
maven的核心配置文件 
conf/setting.xml
默认仓库:当前用户路径C:\Users\[UserName]\.m2
localRepository:用户仓库,用于检索依赖包路径
这里设置本地仓库为:55行: <localRepository>D:/maven/repository</localRepository>
需要本地有仓库来保存jar包
在本地仓库下,将刚才的setting.xml 复制过来, 这两个必须一样
用户级别的仓库在全局配置中一旦设置,全局配置将不再生效,转用用户所设置的仓库,否则使用默认路径仓库



maven项目文件目录约定:
src/main/java —— 存放项目的.java文件
src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件
src/test/java —— 存放所有测试.java文件,如JUnit测试类
src/test/resources —— 测试资源文件
target —— 项目输出位置
pom.xml——maven项目核心配置文件

第一个maven项目:
第一步. 首先建立MavenHelloWorld项目同时建立Maven约定的目录结构


MavenHelloWorld
  src
  main
  java
  resources(暂时省略)
  test
  java
  resources(暂时省略)
  pom.xml


第二步:在src/main/java/cn/itcast/maven目录下新建文件Hello.java


package cn.itcast.maven;


public class HelloWorld {
public String sayHello(String name){
return "Hello World :" + name + "!";
}
}


第三步:在/src/test/java/cn/itcast/maven目录下新建测试文件HelloTest.java


package cn.itcast.maven;


import org.junit.Test;
import static junit.framework.Assert.*;


public class HelloTest {


@Test
public void testHello(){

Hello hello = new Hello();
String results = hello.sayHello("maven");
assertEquals("Hello maven!",results);


}

}


第四步:在项目MavenHelloWorld根目录建立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">
  <!-- 版本:4.0.0 -->
  <modelVersion>4.0.0</modelVersion>
  <!-- 组织名称:暂时使用 组织名称+项目名称 作为组织名称  GAV都可以随意写-->
  <!-- 组织名称:实际名称 按照访问路径规范设置,通常以功能作为名称:eg: junit spring -->
  <groupId>cn.itcast.maven</groupId>
  <!-- 项目名称 -->
  <artifactId>HelloWorld</artifactId>
  <!-- 当前项目版本号:同一个项目开发过程中可以发布多个版本,此处标示0.0.1版 -->
  <!-- 当前项目版本号:每个工程发布后可以发布多个版本,依赖时调取不同的版本,使用不同的版本号 -->
  <version>0.0.1</version>
  <!-- 名称:可省略 -->
  <name>Hello</name>
  
  <!-- 依赖关系 -->
<dependencies>
<!-- 依赖设置 -->
<dependency>
<!-- 依赖组织名称 -->
<groupId>junit</groupId>
<!-- 依赖项目名称 -->
<artifactId>junit</artifactId>
<!-- 依赖版本名称 -->
<version>4.9</version>
<!-- 依赖范围:test包下依赖该设置 -->
<scope>test</scope>
</dependency>

</dependencies>
</project>




第五步:  每个命令都需要其他依赖插件, 下载的东西放在本地仓库里了


a)打开cmd命令行,进入Hello项目根目录(包含有pom.xml文件的目录)
b)执行 mvn compile命令(若不是内部指令,需要去path中配置下。)   build success 说明构建成功, 出现target文件夹
执行完毕后,生成了maven工程编译完成后字节码文件的生成目录target
c)cmd 中继续录入mvn clean命令   把刚生成的target给删除了
执行完毕后,字节码生成目录被删除
d)cmd 中录入 mvn clean test命令
执行完毕后,字节码生成目录中生成了被测试类与测试类的编译字节码和测试执行过程日志与详细报告
e)cmd 中录入 mvn clean compile命令
组合指令,先执行clean,再执行compile,通常应用于上线前执行,清除测试类
f)cmd 中录入 mvn clean test命令   在target中有测试报告
组合指令,先执行clean,再执行test,通常应用于测试环节
g)cmd 中录入 mvn clean package命令
组合指令,先执行clean,再执行package,将项目打包,通常应用于发布前  生成jar包, jar包名为 A + V .jar 
执行过程:
清理————清空环境
编译————编译源码
测试————测试源码
打包————将编译的非测试类打包
h)cmd 中录入 mvn clean install 查看仓库,当前项目被发布到仓库中   把自己的jar包放到自己的仓库   clean为单独的,需要单独提出来,  这步执行完成后,如果修改pom中的version值,再install,会出现新的版本, GAV其实是层级关系
组合指令,先执行clean,再执行install,将项目打包,通常应用于发布前
执行过程:
清理————清空环境
编译————编译源码
测试————测试源码
打包————将编译的非测试类打包
部署————将打好的包发布到资源仓库中
-----------------------------------------------------------------
错误范例:
说明:MAVEN 命令输入错误,命令名称显示在[ERROR] Unknown lifecycle phase "compoile"
引号中的内容为输入错误的名称
[ERROR] Unknown lifecycle phase "compoile". You must specify a valid lifecycle p
hase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin
-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validat
e, initialize, generate-sources, process-sources, generate-resources, process-re
sources, compile, process-classes, generate-test-sources, process-test-sources,
generate-test-resources, process-test-resources, test-compile, process-test-clas
ses, test, prepare-package, package, pre-integration-test, integration-test, pos
t-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-s
ite, site, post-site, site-deploy. -> [Help 1]


eclipse中安装maven插件:
prefeence---》 搜索 maven  -----》 选installation  ---------》 add  将maven的安装目录引用过来,====  apply
user setting =====》 改为自己仓库的setting。xml地址    D:\maven\setting.xml   ======>    下面再reindex, 就会自动更新




新建maven工程: 
maven project   ----》   下一步  ------  maven  archetype - quickstart  ----->  输入 GAV  帮助我们生产pom.xml  项目名为 A的名字
在navicator试图下:  pom。xml 使用 maven pom editor  打开  ( gav 下面有个 package  默认jar包, 也可是war包)
建议jdk换为自己计算机上的

项目完成后, 右键 pom.xml  ----  run as ----> 第二个  maven build ---》  在goals中打指令, clean /  compile / install  /  package 


如果再新建一个maven工程, 直接在pom.xml中,引用第一个工程的GAV就可以了, pom一保存, 就会将jar包下载下来


第二个项目:


第六步:新建第二个项目模块HelloFriend目录及约定的目录结构


HelloFriend
  src
  main
  java
  resources(暂时省略)
  test
  java
  resources(暂时省略)
  pom.xml


第七步:在项目HelloFriend根目录建立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.itcast.maven</groupId>
  <artifactId>HelloFriend</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>HelloFriend</name>
  
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>itcast</groupId>
<artifactId>HelloWorld</artifactId>
<version>0.0.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>


第八步:在src/main/java/cn/itcast/maven目录下新建文件HelloFriend.java


package cn.itcast.maven;


import cn.itcast.maven.HelloWorld;


public class HelloFriend {


public String sayHelloToFriend(String name){
HelloWorld hw = new HelloWorld();
String str = hw.sayHello(name)+" I am "+this.getMyName();
System.out.println(str);
return str;
}

public String getMyName(){
return "MAVEN";
}


}


第九步:在/src/test/java/cn/itcast/maven目录下新建测试文件HelloFriendTest.java
package cn.itcast.maven;


import static junit.framework.Assert.assertEquals;


import org.junit.Test;


import cn.itcast.maven.Hello;




public class HelloFriendTest {
@Test
public void tesHelloFriend(){
HelloFriend helloFriend = new HelloFriend();
String results = helloFriend.sayHelloToFriend("Jock");
assertEquals("Hello World Jock! I am MAVEN",results);
}
}


第十步:在HelloFriend目录下执行命令mvn package


系统报错说没有找到依赖


第十一步:需要重新构建HelloWorkd第一个项目并安装到数据仓库,在命令行HelloWorkd根目录下执行mvn clean install


第十二步:重新在HelloFriend目录下执行命令mvn package


成功




0 0
原创粉丝点击