1、maven入门(maven笔记)

一、安装

首先maven的配置安装非常简单:将下载下来的压缩包解压之后将bin目录的路径加入到path环境变量下即可,使用mvn –version可以验证。

二、手工演示maven构建java项目

  • 这里我们先手工的创建maven工程
    我们先新建一个目录用来存放maven工程E:\javaWeb\maven\maven-pro。然后新建一个01目录,这个目录就是我们的工程目录,而相关的的java文件必须放在此工程下的src\main\java目录中。

  • 新建一个java文件Hello.java

package cn.edu.zttc.hello;
 public class Hello{
     
     public String sayHello(String name){
         return "Hello:" + name;
     }
     
     public static void main(String[] args){
         System.out.println("Hello World");
     }
 }

注意:这里我们需要将此文件放在01\src\main\java\cn\edu\zttc\hello目录下(根据包名),当然不存在的目录需要我们手工新建出来。

  • 配置一个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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <!--配置项目名称-->
    <groupId>cn.edu.zttc.maven.hello</groupId>  
    <!--配置项目的一个模块-->
    <artifactId>hello-first</artifactId>
    <!--版本信息:这是一个快照版本-->
    <version>SNAPSHOT-0.0.1</version>
</project>

这样我们就配置好了一个java项目的基本信息。

  • 编译
    使用命令mvn compile进行编译,此时maven就会去中央仓库下载所需要的文件(如jar包)。下载下来的文件默认会放在C:\Users\yj\.m2目录中,当然之后我们可能会给maven配置一个本地仓库,那样就不需要每次都进行下载。

  • 配置一个本地仓库
    下载的内容在C:\Users\yj\.m2中,但是为了精确控制maven下载下来的文件,我们在E:\maven中新建了一个文件夹maven\repository(完整路径是:E:\maven\maven\repository),专门用来存放maven下载的文件。而这里我们首先需要对maven安装目录中conf文件夹中的settings.xml对本地路径进行配置:

    1

    然后将此文件复制一份到E:\maven\maven中。这里我们的本地仓库中什么都没有,直接将之前下载在C:\Users\yj\.m2中的repository中的所有文件全部拷贝到本目录。这样maven会首先在本地仓库中进行寻找所需的依赖文件,如果本地没有才会去远程仓库中下载。

  • 测试
    编译之后在工程下会多出一个target的目录,这个目录中存放的就是编译好了的文件。现在我们编写一个测试文件TestHello.java(放在E:\javaWeb\maven\maven-pro\01\src\test\java\cn\edu\zttc\hello):

package cn.edu.zttc.hello;
import org.junit.*;
import static junit.framework.Assert.*;
import cn.edu.zttc.hello.*;

public class TestHello{
    
    @Test
    public void testHello(){
        Hello h = new Hello();
        assertEquals( h.sayHello("tom"), "Hello:tom");
    }
}

注意:路径的后半部分是根据包名而定的。
同时,显然此测试类需要用到junit的相关包,所以我们需要在pom.xml文件中配置junit:

<?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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <!--配置项目名称-->
    <groupId>cn.edu.zttc.maven.hello</groupId>  
    <!--配置项目的一个模块-->
    <artifactId>hello-first</artifactId>
    <!--版本信息:这是一个快照版本-->
    <version>SNAPSHOT-0.0.1</version>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

说明:这里暂时不要管如何配置,我们先对maven有个直观的感受。
之后我们在工程01目录下运行命令:mvn test
此时我们会发现在target目录中多出了一些测试报告之类的文件,我们可以查看测试结果。当然我们如果使用命令:mvn clean可以将编译的文件全部删掉。

  • 打包
    我们使用命令:mvn clean package。这个命令就是先清除之前的编译文件然后再次编译。同时还会给我们将本工程的本模块打成一个jar包。
    然后我们再看命令:mvn clean install
    这个命令就是清理之前的文件,再次编译并将打好的包发到本地仓库中。这里注意:将打好的包发布到本地仓库中之后我们在其他项目中就可以使用此包了。

  • 现在在E:\javaWeb\maven\maven-pro中新建另一个工程02。目录结构和之前的一样,这里不再说明。然后我们编写一个java文件World.java

package cn.edu.zttc.world;
//这里我们是导入的之前的工程(01)
import cn.edu.zttc.hello.*;
public class World{
    public static void main(String[] args){
        Hello h = new Hello();
        h.sayHello("Jerry");
    }
}
  • 同时这里需要用到01工程的内容,所以我们需要在本工程的配置文件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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <groupId>cn.edu.zttc.maven.hello</groupId>  
    <artifactId>hello-second</artifactId>
    <version>SNAPSHOT-0.0.1</version>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
        
        <dependency>
            <groupId>cn.edu.zttc.maven.hello</groupId>
            <artifactId>hello-first</artifactId>
            <version>SNAPSHOT-0.0.1</version>
            <scope>complie</scope>
        </dependency>
    </dependencies>
</project>
  • 之后我们使用命令:mvn package这样就打好一个包了,这是如果我们的01工程中Hello.java文件中增加了一个方法:
public String hello(){
    return “Hello”;
}

这时我们只需要使用命令:mvn clean install重新清理、编译、打包、发布。在02工程中我们就可以直接使用此方法:h.hello();然后再使用命令:mvn clean package即可。

  • 但是很显然,使用这种方式新建一个项目太过于麻烦,那maven为我们提供了一个工具,比如我们现在新建一个项目03。进入03,然后使用命令:
    mvn archetype:generate帮我们新建项目的骨架。
    2

    碰到这种情况我们直接回车即可。
    3

    然后到这里也是直接回车。然后我们需要输入一些信息,如下:
    4

    没有输入的地方表示直接回车。这样我们的项目骨架就搭建好了。

三、使用MyEclipse创建mavne工程

  • 在MyEclipse中配置本地maven
    首先在window-->preference-->Maven4MyEclipse-->Installations-->添加我们自己的maven:选择文件路径E:\maven\maven-3.3.9

    5

    然后我们还要设置自己的仓库window-->preference-->Maven4MyEclipse-->User Settings选择自己的仓库中的E:\maven\maven\ settings.xml然后apply-->ok
    6

  • 然后我们新建一个maven项目(工程user-core):
    New-->Maven Project-->Next-->

    7

    -->Next-->输入我们的模块名称,包名等等信息。这样我们就建立了一个maven项目。
    8

    之后我们就可以进行相关的开发。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,100评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,358评论 6 343
  • Maven入门教程 1.1.介绍、环境配置 1.1.1.Maven介绍 Maven是一个采用纯Java编写的开源项...
    安易学车阅读 1,424评论 2 10
  • 大林dalin阅读 453评论 0 51
  • 有那么一天,我的思想再不停的转换 ,我的观念再不停的改变的同时 。我是不是应该觉得什么才会适合自己 ...
    迷迭香草阅读 237评论 0 0