本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(1)

maven入门,Idea入门

发布于2021-05-29 21:04     阅读(489)     评论(0)     点赞(15)     收藏(0)


IDEA

创建项目

idea中Project相当于eclipse中的workspace,而module相当于eclipse中的project

idea配置

  1. keymap为快捷键的配置
  2. idea可以添加模板以加快开发速度,setting–>Editor–>Copyright–>Copyright profiles中增加模板
  3. idea自带一些模板,如getter和setter方法,toString方法等,新项目需要右键项目并Update Copyright来更新模板
  4. 推荐在maven中打开源码下载,便于开发时使用依赖遇到问题及时查看setting–>Build–>maven–>importing
    在这里插入图片描述
  5. maven仓库的配置,将仓库指定为本地仓库
    在这里插入图片描述

maven

概述

maven是一个软件项目管理和理解工具,它基于项目对象模型(POM),maven可以管理项目的构建(编译、打包、测试),报告和文档

maven项目构建结构

my-app
|-- pom.xml
`-- src
    |-- main
    |   |`-- java
    |   |  `-- com
    |   |        `-- mycompany
    |   |            `-- app
    |   |                `-- App.java
 	|	|`-- resource (Java代码)
	|		
	|
	|
	|
    `-- test
        `-- java
            `-- com
                `-- mycompany
                    `-- app
                        `-- AppTest.java

POM

pom.xml文件是Maven中项目配置的核心。它是一个配置文件,其中包含以所需方式构建项目所需的大多数信息

依赖管理

maven对项目管理体现的最突出的特点是maven的依赖管理,在pom.xml中配置dependency,其中需要配置GAV(坐标),例如:
在这里插入图片描述

scope

  1. compile:缺省值,适用于所有阶段,可随项目一起发布,会被打包
  2. provided:类似compile,期望JDK、容器或使用者会提供这个依赖,不会被打包,如servlet.jar
  3. runtime:只在运行时使用,如JDBC驱动,适用运行和测试阶段
  4. test:只在测试时使用,用于编译和运行测试代码。不会跟随项目发布
  5. system:类似provided,需要显式提供当前系统中包含依赖的jar文件路径,maven不会在respository中查找它

传递依赖

当jarA依赖于jarB,jarB依赖于jarC时,当jarB的scope值为compile时会传递依赖,jarA会依赖于jarC
使用exclusions可以排除掉某个传递的依赖

依赖原则

为了防止jar包冲突,当项目引用相同类型但不同版本的依赖时,会遵循最短路径优先的原则,当路径长度相同时,先声明的依赖优先

maven仓库

  1. 项目需要依赖时,在pom.xml中配置后会从本地仓库寻找,当本地仓库没有对应的依赖则可以从中央仓库下载
  2. 由于中央仓库在国外,下载速度慢,所以可以配置ali镜像,从而每次从aliyun中寻找依赖
    在这里插入图片描述

配置镜像

在settings.xml中的mirros标签下配置

私有仓库

处于局域网访问的内部仓库,比本地仓库可用的范围大但又区分于公有仓库

坐标

定位构建,使用GAV(GroupId、ArtifactId、Version)

属性

使用properties来自定义属性,使用时用${自定义属性名}
如:
在这里插入图片描述

生命周期

不同于servlet,maven中有三条独立的生命周期(default,clean,site),每一个生命周期分为若干阶段,当执行某一阶段时,会自动执行前面的阶段

deafult生命周期:构建项目

  1. validate:验证工程是否正确,所有需要的资源是否可用
  2. complie:编译项目的源代码
  3. test:使用合适的单元测试框架来测试已编译的源代码,这些测试不需要自己打包和部署
  4. pacage:把已编译的代码打包成可发布的格式,如jar
  5. integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境
  6. verify:运行所有检查,验证包是否有效且达到质量标准
  7. install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用
  8. Deploy:在继承或发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享

clean生命周期:清理项目

  1. pre-clean:执行清理前需要完成的工作
  2. clean:清理上一次构建生成的文件
  3. post-clean:执行清理后需要完成的工作

site生命周期:建立和发布项目站点

  1. pre-site:生成项目站点之前需要完成的工作
  2. site:生成项目站点文档
  3. post-site:生成项目站点之后需要完成的工作
  4. site-deploy:将项目站点发布到服务器


所属网站分类: 技术文章 > 博客

作者:我睡觉爱打呼噜

链接:http://www.javaheidong.com/blog/article/207392/40b58e145b0f141b7b45/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

15 0
收藏该文
已收藏

评论内容:(最多支持255个字符)