Maven3学习总结-环境搭建

我们在进行java项目开发时,尤其是SSH等框架整合的项目时,最头痛的就是jar包的冲突等问题,怎样解决该问题并进行良好的项目构建呢?apache的Maven能够帮我们解决以上的问题。

Maven 是一个项目管理和构建自己主动化工具。可是对于我们程序猿来说。我们最关心的是它的项目构建功能。

首先:从Maven官网(http://maven.apache.org/download.cgi;)下载maven。并解压缩。

其次:配置maven的环境变量:M2_HOME,右键我的电脑-》环境变量-》用户变量-》创建->M2_HOME,value:就是你的maven的bin所在文件夹。并把该变量加入到path中。

最后:測试mavne是否安装成功。在CMD命令中键入  mvn -v 命令:假设出现例如以下所看到的。就表示安装成功mavne

Maven 使用惯例优于配置的原则 。它要求在没有定制之前,全部的项目必须遵循例如以下的结构:

app

--pom.xml

--src

--main

--java

--package...

--class

--test

--java

--package..

--class

pom.xml文件时项目构建文件(Project Object Model):其内容例如以下:

<?xml version="1.0" encoding="UTF-8" ?

>
<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>org.oracle.maven</groupId>
  <artifactId>maven-hello</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.10</version>
		</dependency>
  </dependencies>
</project>

以上文件文件里 modelVersion是模块版本号,对于Maven2以后版本号此处都是4.0.0, <groupId>:表示项目属于哪一个组。此处一般都是相应公司。<artifactId>是模块(子项目)的唯一名称,<version>表示当前的版本号(SNAPSHOT:表示快照版本号。測试)<name>用于说明项目。

依据以上结构创建好项目结构:

以上的main中存放项目(模块) 的主代码,test中用与保存測试代码,在main中的winstar包下创建一个java类:代码例如以下:

<code>

package org.winstar;

public class HelloMaven{

public String sayHello(){

return "Hello Maven";

}

}

</code>

回到CMD命令中,运行mvn
compile(编译命令)  会看到例如以下:

BUILD SUCCESS:构建成功,同一时候在项目中出现了一个target目录在target下有classes和maven-status两个目录,我们的HelloMaven.class文件mavne已经帮我们自己主动编译完毕并保存在classes目录中。

在test->java->org->winstar包下创建例如以下測试类,代码例如以下:

<code>

package org.oracle.domain;

import org.junit.*;

import static org.junit.Assert.*;

public class HelloTest{

@Test

public void test(){

Hello hello=new Hello();

String str=hello.sayHi();

assertEquals(str,"hello");

}

}

</code>

保存pom.xml文件后。运行mvn
test, maven会自己主动从网上(中央仓库。这个后头会讲)下载所需的jar。并保存的本地的(仓库:默认在C:\Users\Administrator\.m2\repository文件夹下)硬盘上。我们能够查看该文件夹,发现多了个junit的文件夹,当中已经包括了jar文件。

运行安装,将项目生成jar,在CMD中运行 mvn clean install 命令(clean用于清空target文件夹),会看到例如以下:

mavne会把项目生成hello-mavne-0.0.1-SNAPSHOT.jar文件,当中 hello-maven是<artifactiId>的名称。同一时候,这个jar文件会保存到本地仓库中。

我们把这个jar文件 仅仅需通过项目的pom.xml文件导入就可以。

我们完毕第一maven项目后。基本了解了maven的项目结构和两个基本命令:mvn compile(编译) mvn test(測试),并且maven的项目须要网络的支持(须要从中央仓库中下载jar文件)。那么maven究竟能给我们带来什么优点(怎样实现项目、模块的自己主动构建以及管理呢)?接下来我们来做第二个实验,參考第一个maven项目结构,建立一个新的目录(项目,其层次结构与第一个同样)。

在model中创建一个java类:

<code>

package org.winstar.model;

public class World{

public String show(){

HelloMaven hm=new HelloMaven();

return hm.sayHello();

}

}

</code>

首先我们的通知maven要导入的模块名称。mvn通过GAV(GroupId,ArtifactId,Version),简称“坐标” 来定位项目,并建立项目的依赖关系(依赖关系是maven中的一个重点,这个后面会讲到)。在新创建的项目的pom.xml文件里加入例如以下代码:

<?

xml version="1.0" encoding="UTF-8"?>
<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>org.winstar.maven.ch002</groupId>
  <artifactId>maven_002</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <dependencies>
        <dependency>
            <groupId>org.winstar.maven.ch001</groupId>
			<artifactId>hello_maven</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
  </dependencies>

</project>

编辑并保存该文件,回到cmd中运行例如以下命令:

至此,我们的项目成功执行(并导入第一个项目模块),有点感觉啦吧。。!

通过以上的两个实验。我们发现mavne的项目架构。那么我们每次都须要这么麻烦的去手动的创建文件文件夹吗(Eclipse的mavne支持和sts的mavne支持。后面会讲),不须要的。我们仅仅要运行 mvn archetype: generate。 maven会自己主动依据骨架来完毕项目的创建。

首先我们创建一个目录,然后进入该目录,并运行mvn archetype:generate

等待。

。。

提示输入groupId.artifactId:
version package 最后键入y完毕项目的构建,看我们的目录吧!自己主动完毕。太给力啦。

我们会看到mavne会自己主动联网下载所需的jar文件资源(同一时候自己主动保存到本地仓库中,下次就不需从网上去下载了。

本地仓库能够在maven的文件夹中有个conn的文件夹,该文件夹下有一个settings.xml文件改动成自己的文件夹就可以)。

mvn archetype:generate命令会自己主动创建maven项目架构(包含pom.xml和各个目录)这个命令就是在Eclipse中创建mavne项目时用到的。好了简单总结一下mvn的基本命令:

1:mvn compile--->编译

2:mvn test--->測试(会自己主动生成測试报告)

3: mvn clean package--->将项目打包(clean:清空target文件夹)

4:mvn clean install--->安装(会依据artifactiId和version生成一个jar,并保存到本地的仓库中)

5:mvn archetype: generate---->(依据archetype:骨架)自己主动创建mavne项目 。

时间: 2024-08-03 19:25:47

Maven3学习总结-环境搭建的相关文章

【golang学习】环境搭建

近期项目的需要开始了学习golang的旅程,在此将学习的过程做以记录,方便查看,也希望帮助到大家. 由于我使用的是64位linux环境(redhat 5.2),所以这里就介绍64位的安装方式,其他类似: 1. 下载安装包 自从2014年5月谷歌在国内被封杀之后,我们下载go安装包也得翻墙了,但是为了方便我上传了一个64位linux的包在(地址),你可以直接下载使用. 2.安装 下载完上传到你的linux系统中,比如/opt/go1.1.1.linux-amd64.tar.gz,这是就开始安装了,

Angularjs学习---angularjs环境搭建,ubuntu 12.04下安装nodejs、npm和karma

1.下载angularjs 进入其官网下载:https://angularjs.org/?,建议下载最新版的:https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.7/angular.js 所有版本:https://code.angularjs.org/ 2.示例1 HelloWorld ! 新建一个helloworld.html <!doctype html> <html ng-app> <head> &

Android学习之环境搭建

Android学习之环境搭建 园里有很多关于Android开发的环境搭建的资料,本人是安卓开发初学者,这里记录一下个人搭建Android环境的总结. 1.准备Eclipse IDE for Java Developers 网上可以下载的版本还是比较多的,本人选择了eclipse-java-luna-SR2-win32. 网址:http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/lunasr2 Note:官网点

CouchBase学习之环境搭建以及HelloWorld

一.引言 NoSQL(Not Only SQL),火了很久了,一直没空研究.最近手上一个项目对Cache有一定的要求,借此机会对NoSQL入门一下.支持NoSQL的数据库系统有很多,  比如Redis,MongoDB等.每种系统都有自己的优缺点,根据实际情况我们选用了CouchBase作为切入点学习.这里有几种数据库的比较:http://www.csdn.net/article/2013-04-15/2814886-nosql-benchmark CouchBase,是MemBase与couch

JavaWeb学习之环境搭建

1. HTML(Hyper Text Markup Language) , 超文本标记语言. HTML文件的后缀名一般是: .htm , .html 表单(form): 浏览器内核: WebKit , trident Javascript:alert(‘?’);  --->java脚本语言 我的第一个html程序: 代码如下: 1 <html> 2 <head> 3 <title> 龚细军的网站</title> 4 </head> 5 6

hbase_学习_01_HBase环境搭建(单机)

一.前言 本文承接上一篇:hadoop_学习_02_Hadoop环境搭建(单机)  ,主要是搭建HBase的单机环境 二.环境准备 在虚拟机中: 操作系统 : linux CentOS 6.8 jdk:1.7 hadoop:2.8.3 hbase:1.4.2 三.hbase下载 1.hbase下载地址 http://mirror.bit.edu.cn/apache/hbase/1.4.2/hbase-1.4.2-bin.tar.gz 2.下载hbase wget http://mirror.bi

深度学习开发环境搭建

深度学习开发环境搭建 https://www.cnblogs.com/ai-developer/p/10022115.html 工欲善其事,必先利其器.首先我们需要花费一些时间来搭建开发环境. 1.安装python.python是人工智能开发首选语言. 2.安装virtualenv.virtualenv可以为一个python应用创建一套隔离的运行环境,避免不同版本的python或第三方库互相影响.类似的虚拟环境还有anaconda,anaconda自带常用库,因此安装包有几百兆,与anacond

JAVA基础学习——1.环境搭建 (系统Win10,64bit)

大学里虽然老师教过JAVA,但我没学.后来工作了,断断续续的也碰到了JAVA的项目,都是拉过来就干的节奏.也没有好好系统的学习一下. 从今天开始系统学习整理一下JAVA,以后再碰到JAVA项目的时候,心里也踏实点.咱也是正儿八经学过的人了,发发博客就当做个笔记,有不足的地方,大家多多指点,先在这里谢谢大家. 1.  环境搭建第一步,安装JDK. JDK 是Java开发工具包 (Java Development Kit ) 的缩写. JDK 是一系列工具的集合,这些工具是编译Java源码.运行Ja

LINUX内核学习起步:学习开发环境搭建

我的环境配置如下: 电脑上安装虚拟机VMware10.0.1,虚拟机上安装了CentOS6.5,注意虚拟机VMware上面网络的配置选择为桥接模式 电脑windows上安装secureCRT6,事先登录虚拟机中的centos,查询机器IP地址,然后通过secureCRT登录到centos中. 这里为什么要通过secureCRT登录centos呢?因为在centos中直接运行终端或者alt+F1~5方式进入命令行模式,显示的界面太小,不方便操作. 如果你经常要在linux下编程或者学习,建议还是通