inotify java maven_Maven

maven具体是什么:

Maven是跨平台的项目管理工具, 主要服务于Java平台的项目构建、依赖管理和项目信息管理。

项目构建完整的过程:

95f988baf2677c23d03d7ce8393dcc3f.png

使用maven后只需要一步即可完成上述构建过程。

好处2,依赖管理:

正常的项目我们处理jar包很少会去关心具体的版本号,有时当前用到了某个功能去找jar包一般都是用最新的,这样当前可能没问题,实际上这给我们的项目带来了极大的安全隐患和风险,而使用maven后,这些jar包之间的依赖关系就能够清晰的看到了,为什么要用这些jar包,它能自动管理各个jar包之间版本的依赖关系。

好处3,构件化编程:

每个项目的代码的重用率高,将原来的大工程分成很多个小工程,通过maven去构件组装,用到什么功能随时插拔使用,提高开发成本。

在maven的角度来看,简单的来讲每个jar包就相当于一个构件化的组件。

maven安装过程:

1.检查jdk安装的情况(要1.6以上版本):

Echo %JAVA_HOME%  注:验证是否设置java环境变量

Java -version     注:验证java版本

2.对apache-maven-3.0.3-bin.zip进行解压缩,例如解压到如下目录(解压目录最好不要有中文字):

7f733a68bd629f3963d73700748b0fe2.png

3.设置系统环境变量,MAVEN_HOME

6474bfc7534706127ae4dc4f813af4ba.png

4.设置环境变量Path,将%MAVEN_HOME%\bin加入Path中,一定要注意要用分号;与其他值隔开

529d5db1c3462d3ede080316012115c7.png

5.验证安装是否成功,打开cmd窗口,敲入mvn  –v 查看

966e746192400fa73b9a132a46dcfead.png

一般配置完上述步骤即可运行maven了,但是部分人可能会出现内存溢出的一个错误,原因已不需解释,肯定是内存不够了呗,这时我们需要设置一下maven使用的内存,

设置MAVEN_OPTS环境变量:-Xms128m -Xmx512m

注意:上面设置的具体是什么意思呢,是maven在java虚拟机中占用堆的大小,-Xms是设置堆初始的大小,-Xmx是设置堆的最大值。

针对不同用户的配置方式:

直接复制一份E:\apache-maven-3.2.5\conf\settings.xml这个文件到对应的用户(例如:administrator,对应目录是:C:\Users\Administrator\.m2)下即可,这样就表示这个用户的maven配置信息就走这个文件了。

注意:E:\apache-maven-3.2.5\conf\settings.xml默认是全局用户的配置信息。

Maven的约定:

我们在使用maven的时候一定要遵循maven的这个约定,因为凭什么说这个项目是maven项目呢就是因为有一个这样的约定,所以只要按照这个约定做的项目,那它就是个maven项目,正如web项目一样,是约定俗成的东西。

src/main/java

存放项目的.java文件

src/main/resources

存放项目资源文件,如spring,hibernate配置文件

src/test/java

存放所有测试.java文件,如JUnit测试类

src/test/resources

测试资源文件

target

项目输出位置

pom.xml

必须的maven特色文件

动手实践第一个maven项目:

第1步. 首先建立Hello项目同时建立Maven约定的目录结构

Hello

--src

-----main

----------java

----------resources

-----test

---------java

---------resources

--pom.xml

第2步:在项目Hello根目录建立pom.xml

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

4.0.0

cn.cfs.maven

Hello

0.0.1-SNAPSHOT

Hello

junit

junit

4.9

test

pom.xml

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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

packagecn.cfs.maven;public classHello {publicString sayHello(String name){return "Hello "+name+"!";

}

}

Hello(java实现)

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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

packagecn.cfs.maven;importorg.junit.Test;import static junit.framework.Assert.*;public classHelloTest {

@Testpublic voidtestHello(){

Hello hello= newHello();

String results= hello.sayHello("litingwei");

assertEquals("Hello litingwei!",results);

}

}

HelloTest

第5步:

a)打开cmd命令行,进入Hello项目根目录执行 mvn compile命令,查看根目录变化

b)cmd 中继续录入mvn clean命令,然后再次查看根目录变化

c)cmd 中录入 mvn clean compile命令, 查看根目录变化

d)cmd 中录入 mvn clean test命令,查看根目录变化

e)cmd 中录入 mvn clean package命令,查看根目录变化

f )cmd 中录入 mvn install命令,查看根目录变化

动手实践第二个maven项目:

第1步:复制一份hello项目更名为hellofriend,要求约定的结构和hello一样,里面的类文件可以删除

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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

packagecn.cfs.maven;public classHelloFriend {publicString sayHelloFriend(String name) {

Hello h=newHello();

String str=h.sayHello(name)+"引用helloFriend的方法";returnstr;

}

}

HelloFriend

第3步:在项目Hello根目录建立pom.xml

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

4.0.0

cfs.maven

HelloFriend

0.0.1-SNAPSHOT

HelloFriend

junit

junit

4.9

test

cfs.maven

Hello

0.0.1-SNAPSHOT

compile

注意观察这个pom.xml文件和第一个的不同

第4步:观察一下你的maven仓库是否生成了对应的jar文件

e01a66a6bbfc510d14fc369ba4ef644f.png

可以看到项目与项目之间的引用主要是通过maven的依赖管理去实现的,那么maven的概念模型是什么样的呢?

Maven概念模型:

b644ff8a99fdf3787667cc675bb822fb.png

可以通过上面的图片可以清晰的看出来maven是通过插件去实现每一步的操作,那么他的插件放到哪里了呢?

插件路径:C:\Users\Administrator\.m2\repository\org\apache\maven\plugins

cdf8e7d198588203fc858e42e825882f.png

放一张图片对比一下,我们敲的命令既是这些插件的名称,通过命令找到这些插件项目,本质上也是java些的程序。

Maven的坐标讲解:

我们的仓库一般都很大,里面有很多的jar包,maven为更快更有效的去定位实际项目中用到的jar,通过4个维度去快速锁定jar包。

groupId:定义当前Maven项目隶属项目,如果是单独的项目一般填写的是主包名

artifactId:定义实际项目中的一个模块,如果是单独项目则是项目名或主类名

version>:定义当前项目的当前版本,顾名思义不用多解释了

packaging:定义该项目的打包方式,2种,不写该坐标默认是jar,通常web项目选择war包

上面的四种坐标标签是必须的。

dependencies:配置依赖的标签,所有的依赖标签都在这里配置。

dependency:配置具体依赖的标签,只能出现在dependencies标签里。

scope:范围,具体配置项请看下面的图片:

625dde55e20e369e9575414d2e0c5e9c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值