发表于: 2018-03-21 23:55:16
2 690
day5
今天完成的事情:
1.maven中的一些指令
首先附上生命周期命令:
--clean : 清除
--compile :编译
--test : 测试
--package:打包
--install:安装到本地仓库
--deploy:部署,部署到私服(局域网或者是外网)
以下为实践:
在命令行进入通过DOS命令进入myhello文件夹,然后输入 mvn compile
dos命令 'g:' 进入G盘,'cd 路径'进入相应文件夹
由于mevan默认是没有生命周期插件的,当我们输入生命周期命令(如: mvn compile),会自动开始下载
会将文件下载到本地仓库的路径下。即在conf下的setting中设置的那个路径下,一般默认是.m2,这里改到了E:/mvn_repo/repository。
在本地仓库下(E:/mvn_repo/repository),我们找到了它刚刚下载的插件。
随便打开一个可以看到有相应的jar包在里面
在项目的pom文件里,可以看到有声明依赖3.8.1版本的junit。
在本地仓库中,也可以找到对应版本的junit
可以看到是从中心仓库对应的网址下载的
我在项目文件夹下特意删除了target文件夹,但是现在又有了
因为执行 mvn compile后,会自动创建target文件夹,并将src里的Java文件编译成的class文件输出到target中。
再输入 mvn test指令,会和上面一样再次下载相关插件,下载完执行完毕后,
在target文件夹下又会多出对应的测试类文件,同样在本地仓库也可以找到下载的对应版本junit jar包。
其实会发现,执行test要用到junit jar包,但是在myhello中是没有相关jar包的(特意找了下),因为它是通过pom文件中的声明依赖包处引用了本地仓库的jar包,而如果本地仓库没有,即会去中心仓库下载,
而中心仓库其实就是个总网站,里面有各种各样各种版本的一应俱全的包
下面执行mvn clean
然后项目下target没有了
执行 mvn package (打包命令),发现先执行编译,再测试,最后才打包
打开target可以看到以下文件,最下面是jar包
执行 mvn clean install (组合命令,会先执行clean,再执行install)
同样会按顺序 编译-->测试-->打包-->安装,
target下的文件状态和执行打包时一样,但是打开本地仓库,可以看到多了我们的MyHello
点进去就找到了安装的jar包
2.maven命令插件和第三方依赖jar包从哪下载的
在maven安装路径的lib目录下(我的是E:\apache-maven-3.5.3\lib),找到maven-model-builder-3.5.3.jar,
打开后找到它的pom文件,打开该文件发现如下:
上面的<repositories>标签内配置的是第三方jar包下载地址,下面的<pluginRepositories>标签内配置的是maven生命周期插件下载地址,都是中心仓库的地址。
那么这些东西下载到了哪呢,自然是maven安装路径的conf目录下的setting文件里的设置处:
3.maven仓库
本地仓库 localRepository 面向本地的
通过setting设置
中心仓库 Central Repository 面向全球的
网址:https://repo.maven.apache.org/maven2 或 http://search.maven.org
4.maven坐标
由 groupId + artifactId + version 组成
groupId,组Id,类似公司包名
artifactId,构建物Id,类似产品Id
version ,版本号
比如今天的项目,部署到了本地首先看到的是组id,
点进去是构建物id,
再点击去是版本号
再点进去是我们的jar包,
而jar包名的组成形式是 artifactId-version.jar ,如下:
明天计划的事情:
再探究下maven,尽量开始进行下一个子任务
遇到的问题:
今天没什么值得记录的问题呢
收获:
算是加深了对maven的认识吧
评论