1 maven 按照
需要配置java环境变量 设置把该目录追加到环境变量的path中
检查是否成功 mvn -v
2 设置本地仓库地址
修改settings.xml文件 xx指定仓库的路径
- bin中存放可执行的二进制文件
- conf存放settings.xml文件
- lib 运行maven所依赖的jar包
3 maven的约定
- src/main/java 存放项目的java文件
- src/main/resources 存放项目的资源文件,如spring,hibernate的配置文件
- src/test/java 存放所有的测试的java文件
- src/test/resources 存放测试用的资源文件
- target 项目输出位置
- pom.xml 文件
4 pom文件相关
- groupId 这是项目组的编号 这在组织或项目中通常是独一无二的
- artifactId 这是项目的ID 这通常是项目的名称模块的名称
- version 这是项目的版本 与groupId一起使用 artifact在存储库中用于将版本彼此分离
- packaging 默认jar war web形式 pom表示父pom 定义当前项目的打包方式
- mvn compile 编译源代码
- mvn test 运行测试-测试src-test下 junit
- mvn package 打包 packaging设置打成jar还是war compile test
- mvn install 包含mvn compile mvn package 然后上传到本地仓库 deploy上传到远程仓库
5 仓库的分类
- 本地仓库
- 远程仓库 私服 中央仓库 镜像 set文件 mirror 从上往下找
下载maven
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
先去本地查找-私服-远程仓库(会把jar放入私服)
maven scope
- test 在测试环境 /test
- compile 默认 编译运行都会生效 src/main /test
- provided 编译的时候提供 打包的时候不生效servket tomcat有可以不使用
- runtime 运行时范围 编译不生效打包生效 mysql驱动
0.0.1-SNAPSHOT
0 主版本号
0 项目分支
1 分支变更细节
可以 通过新建一个maven pom工程和其他项目平级 然后在modules中引入 但是要加入…/工程名
同级别如果一个包引入两个maven 谁在前面引用谁
多层依赖层级短的优先
maven 私服搭建
wget https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.14.5-02-bundle.tar.gz --no-check-certificate
tar -zxf nexus-2.14.5-02-bundle.tar.gz
mkdir nexus
//安装的原文件 程序文件
mv nexus-2.14.5-02 nexus
//具体的仓库
mv sonatype-work/ nexus
#在环境变量当中设置启动用户
shell> vim /etc/profile
#添加profile文件。安全起见不建议使用root用户,如果使用其它用户需要加相应权限
export RUN_AS_USER=root
#配置文件
nexus.properties
application-port=8081
application-host=0.0.0.0
//程序运行地址
nexus-webapp=${bundleBasedir}/nexus
nexus-webapp-context-path=/nexus
# Nexus section
#仓库地址
nexus-work=${bundleBasedir}/../sonatype-work/nexus
runtime=${bundleBasedir}/nexus/WEB-INF
#启动
shell> ${nexusBase}/bin/nexus start
#停止
shell> ${nexusBase}/bin/nexus stop
#查看日志 logs
tail -f wrapper.log
#远程访问 要关闭防火墙
http://192.168.100.173:8081/nexus/#welcome
#登录
用户名:admin
密码:admin123
仓库类型 group hosted proxy 其他的是maven1中的
group 分组 一个group分组可以把所有的仓库涵盖进来 分组仓库 包含其他就不用配置多个url了
hosted 私有化仓库 自己程序的jar
3rd part第3方仓库 公网上没有但是使用的
Snapshots 本地项目的快照仓库
Releases 发布的正式版本仓库
proxy 第3放下载的 公网上发布的文件 spring mysql-drive
``Central 中央仓库
Apache Snapshots Apache 中央仓库
系统如何防访问仓库 项目里面配置地址
配置站点 可以配置在setting文件中
配置下载的地址 默认releases 的资源不可以下载snapshots包反过来则可以可以通过配置设置
<repository>
<id>nexus-releases 没有特别含义</id>
<name>Nexus Release Repository 没有特别含义</name>
<url>http://maven.weihuamd.com:8081/nexus/content/repositories/releases/</url>
</repository>
<repository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://maven.weihuamd.com:8081/nexus/content/repositories/snapshots/</url>
</repository>
<repository>
<id>nexus-center没有特别含义</id>
<name>Nexus center Repository 没有特别含义</name>
<url>http://maven.weihuamd.com:8081/nexus/content/repositories/center/</url>
</repository>
</repositories>
还可以通过镜像去下载