安装(mac)
1、检查 JAVA_HOME 环境变量
Maven 是使用 Java 开发的,所以必须要java环境
2、下载 Maven,并解压到某个目录
例如:/Users/xxx/apache-maven-3.3.3
3、设置Maven classpath
$ vi ~/.bash_profile
// 添加如下代码,保存并退出Vi:
export M2_HOME=/Users/robbie/apache-maven-3.3.3
export PATH=$PATH:$M2_HOME/bin
复制代码
4、使bash_profile生效
$ source ~/.bash_profile
复制代码
5、查看Maven是否安装成功
$ mvn -v
复制代码
配置
1、配置本地仓库
1)、Maven 的核心程序并不包含具体功能,仅负责宏观调度,具体功能由插件来完成。
Maven 核心程序会到本地仓库中查找插件。如果本地仓库中
没有就会从远程中央仓库下载。此时如果不能上网则无法执行 Maven 的
具体功能。为了解决这个问题,我们可以将 Maven 的本地仓库指向一个
在联网情况下下载好的目录。
2)、Maven 默认的本地仓库(mac):~(/Users/XXX/.m2)/settings.xml
~:表示当前用户的家目录。
3)、找到 Maven 的核心配置文件 settings.xml 文件
解压目录:%M2_HOME%\conf\settings.xml
4)、设置方式
// 本地仓库的路径:
<localRepository>/Users/XXX/.m2/repository</localRepository>
复制代码
2、配置阿里云镜像
为了下载 jar 包方便,在 Maven 的核心配置文件 settings.xml 文件的标签里面配置以下标签:
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
复制代码
3、配置公司仓库用户名和密码
<servers>
<server>
<id>jfrog-releases</id>
<username>username</username>
<password>password</password>
</server>
<server>
<id>jfrog-snapshots</id>
<username>username</username>
<password>password</password>
</server>
</servers>
复制代码
4、配置公司仓库信息
<profiles>
<profile>
<id>dev</id>
<repositories>
<repository>
<id>jfrog-virtual</id>
<name>artifactory-releases</name>
<url>https://公司指定地址/artifactory/SR_maven_virtual/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>nexus</id>
<name>nexus</name>
<url>http://公司指定地址/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
复制代码
5、在 Idea 中配置 Maven
- 自带的 Maven,本地仓库自动为我们设置的仓库
- 配置自己安装的 Maven
常用技巧
1、常用命令
mvn:install : 父工程创建完,执行该命令将父工程发布到仓库方便子工程继承。
maven clean deploy : deploy代码到仓库。{注意:若上传代码到仓库失败(没权限),要增加账号到maven配置文件:XXX/.m2/settings.xml的servers下}
项目构建命令
mvn clean -U package -T 1C -Dmaven.test.skip=true -pl 项目名 -am
cp 项目名/target/项目名-1.0.0-SNAPSHOT.jar ./项目名-1.0.0-SNAPSHOT.jar
tar -zcf 项目名-1.0.0-SNAPSHOT.tar.gz “./项目名-1.0.0-SNAPSHOT.jar”
启动命令
nohup java -Xms725M -Xmx925M -jar 项目名-1.0.0-SNAPSHOT.jar &
2、pom配置
1)、dependencyManagement:一般用在父工程
- 管理依赖版本号,通常在一个组织或项目最顶层的父pom中,让所有子项目引用一个依赖而不用显示的列出版本号。
- 子模块继承后,提供作用:锁定版本,子module不用写groupId和version
- 注意:只是声明依赖,并不实现引入。因此子项目需要显示声明需要的依赖。若子项目指定了版本号,则子项目使用指定的jar版本。
2)、exclusions:屏蔽依赖关系,解决依赖的jar版本冲突
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<!-- 屏蔽依赖关系。 比如项目中使用的libA依赖某个库的1.0版,libB依赖某个库的2.0版,现在想统一使用2.0版,就应该屏蔽掉对1.0版的依赖 -->
<exclusions>
<exclusion>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</exclusion>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
复制代码
3)、distributionManagement:项目分发信息,在执行mvn deploy后表示要发布的位置
该信息信息指定把网站部署到远程服务器或者把构件部署到远程仓库(与settings文件servers中配置的公司仓库信息对应)
<distributionManagement>
<repository>
<id>jfrog-releases</id>
<name>artifactory-releases</name>
<url>https://公司指定地址/artifactory/SR_maven_releases_local/</url>
</repository>
<snapshotRepository>
<id>jfrog-snapshots</id>
<name>artifactory-snapshots</name>
<url>https://公司指定地址/artifactory/SR_maven_snapshots_local</url>
</snapshotRepository>
</distributionManagement>
复制代码
4)、repositories:发现依赖和扩展的远程仓库列表
包含需要连接到远程仓库的信息(与settings文件profiles中配置的公司仓库信息对应)
<repositories>
<repository>
<id>jfrog-virtual</id>
<name>artifactory-releases</name>
<url>https://公司指定地址/artifactory/SR_maven_virtual/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>nexus</id>
<name>nexus</name>
<url>https://公司指定地址/nexus/content/groups/public/</url>
<releases>
<enabled> true </enabled>
</releases>
<snapshots>
<enabled> true </enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
复制代码
5)、pluginRepositories:发现插件的远程仓库列表
这些插件用于构建和报表(与settings文件profiles中配置的公司仓库信息对应)
<pluginRepositories>
<pluginRepository>
<id>jfrog-virtual</id>
<name>artifactory-releases</name>
<url>https://公司指定地址/artifactory/SR_maven_virtual/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>nexus</id>
<name>nexus</name>
<url>https://公司指定地址/nexus/content/groups/public/</url>
<releases>
<enabled> true </enabled>
</releases>
<snapshots>
<enabled> true </enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
复制代码
3、跳过单元测试
4、项目启动非常慢(mac)
处理:/ets/hosts 添加机器地址:127.0.0.1 localhost yanzhus-MacBook-Pro.local
原因:启动时会循环遍历找机器
机器名:系统偏好设置-共享(您的本地网络上的电脑可以通过以下地址访问您的电脑: XXX-MacBook-Pro.local)
5、导入项目异常
1)、导入项目后在右侧没有maven project窗口
选中项目根pom文件:右键选择add as maven project
2)、test包下单元测试ctrl进入不了文件(can’t find …)
选中test包: 右键选择Mark directory as – Test Resources Root
3)、Kotlin: Language version 1.1 is no longer supported; please, use version 1.2 or greater
- 1)、设置Kotlin Compiler
- 2)、Kotlin Compiler设置 若不起作用,直接在该项目project structure设置