1.1下载 http://maven.apache.org/download.cgi#(官网)
MAVEN_HOME:maven地址
Path(新建):%MAVEN_HOME%\bin
配置maven文件下下conf文件中setting.xml中标签加入阿里巴巴镜像
<mirror>
<id>alimavenid>
<name>aliyun mavenname>
<url>
http://maven.aliyun.com/nexus/content/groups/public/
url>
<mirrorOf>centralmirrorOf>
mirror>
命令行测试
MVEN配置好,如果新建项目仍然是idea自带的maven3即可进入c盘修改默认配置文件
<component name="MavenImportPreferences">
<option name="generalSettings">
<MavenGeneralSettings>
<option name="localRepository" value="D:\app\apache-maven-3.3.9\repository" />
<option name="mavenHome" value="D:\app\apache-maven-3.3.9" />
<option name="userSettingsFile" value="D:\app\apache-maven-3.3.9\conf\settings.xml" />
MavenGeneralSettings>
option>
component>
MAVEN的生命周期
clean 单独删除target目录
validate验证 compile编译 test测试 package打包 verify验证 install安装 site deploy部署
验证(validate) - 验证项目是否正确,所有必要的信息可用
编译(compile) - 编译项目的源代码
测试(test) - 使用合适的单元测试框架测试编译的源代码。这些测试不应该要求代码被打包或部署
打包(package) - 采用编译的代码,并以其可分配格式(如JAR)进行打包。
验证(verify) - 对集成测试的结果执行任何检查,以确保满足质量标准
安装(install) - 将软件包安装到本地存储库中,用作本地其他项目的依赖项
部署(deploy) - 在构建环境中完成,将最终的包复制到远程存储库以与其他开发人员和项目共享。
这些生命周期阶段(以及此处未显示的其他生命周期阶段)依次执行,以完成默认生命周期。给定上述生命周期阶段,这意味着当使用默认生命周期时,Maven将首先验证项目,然后尝试编译源代码,运行这些源代码,打包二进制文件(例如jar),运行集成测试软件包,验证集成测试,将验证的软件包安装到本地存储库,然后将安装的软件包部署到远程存储库。
在 Maven 的术语中,仓库是一个位置(place)。
Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。
在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。
Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。
Maven 仓库有三种类型:
Maven 所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。
Maven 中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的库。
中央仓库包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息等。一般来说,简单的Java项目依赖的构件都可以在这里下载到。
如果 Maven 在中央仓库中也找不到依赖的文件,它会停止构建过程并输出错误信息到控制台。为避免这种情况,Maven 提供了远程仓库的概念,它是开发人员自己定制仓库,包含了所需要的代码库或者其他工程中用到的 jar 文件。
groupId:该元素定义了当前Maven项目隶属的实际项目,一般情况下该项元素都与公司域名相对应,比如com.taobao.
artifactId:该元素定义了实际项目中的一个Maven Module
version:该元素表示当前构件的版本,包括稳定(release)版本和测试(snapshot)版本
packaging:该元素定义Maven项目的打包方式,默认为jar,还有war和pom方式
classifer:该元素用来帮助定义构件输出的一些附属构件,例如通过配置插件,可以在打包的同时生成-javadoc.jar和sources.jar 等构件。
org.projectlombok
lombok
1.18.10
provided
org.apache.maven.plugins
maven-shade-plugin
3.1.1
package
shade
com.aaa.qy114.App
切换到有jar包的文件夹
cd E:\IDEA_PROJECT\mavenJavapt\target\
执行java 命令
java -jar mavenJavapt-1.0-SNAPSHOT.jar
测试:将war包放到tomcat,webapps文件中 启动tomcat 会根据war包自动创建项目的文件夹访问即可(前提配置环境变量)
startup启动tomcat
shutdown关闭
项目的打包类型:pom、jar、war
packing默认是jar类型,
pom ---------> 父类型都为pom类型 父子工程需要
jar ---------> 内部调用或者是作服务使用
war ---------> 需要部署的项目
依赖范围就是用来控制依赖与这三种classpath(编译classpath、测试classpath、运行classpath)的关系,Maven有以下几种依赖范围。
如果没有指定,就会默认使用该依赖范围。使用此依赖范围的maven依赖,对于编译 测试 运行三种的classpath都有效。
使用此依赖范围的Maven依赖,只对于测试的classpath有效,在编译主代码或者运行主代码的时候都无法依赖此类依赖。典型的例子是jUnit,它只有在编译测试代码及运行测试代码的时候才有效。
使用此依赖范围的maven依赖,对于编译和测试classpath有效,但在运行时无效。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行的时候,由于容器已经提供,就不需要maven重复地引入一遍。打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude操作
使用此依赖范围的maven依赖,对于测试和运行classpath有效,但在编译主代码时无效。典型的例子是JDBC驱动实现,项目主代码的编译只需要jdk提供的jdbc的接口,只有在执行测试或者运行测试的时候才需要实现上述接口的jdbc的驱动
1、junit错误
junit
junit
4.12
test
在单元测试文件夹下,没有@Test ,解决方法是:
去掉scope作用域,使用默认的compile,编译、测试、运行都有效的作用域
在每一个maven中 配置阿里云镜像
E:\IntelliJ IDEA 2019.2\plugins\maven\lib\maven2\conf
在setting文件夹mirrors标签中加入
<mirror>
<id>alimavenid>
<name>aliyun mavenname>
<url>http://maven.aliyun.com/nexus/content/groups/public/url>
<mirrorOf>centralmirrorOf>
mirror>
使用everthing搜索lastupdate删除
依赖下载失败,在repository文件夹下,cmd,
for /r %i in (*.lastUpdated) do del %i 要进入本地仓库
mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpackaging=jar
hope-openapi-sign-1.2.0.jar
mvn install:install-file -Dfile=hope-openapi-sign-1.2.0.jar -DgroupId=openapi -DartifactId=sign -Dversion=1.2.0 -Dpackaging=jar
注意:有可能撞倒默认仓库,安装成功,会显示安装到的目录,一定要确认idea中的仓库,跟手动导包的位置是一致的。
cd ~/.bash_profile
#maven所在的目录
export M2_HOME=/Applications/IntelliJ\ IDEA.app/Contents/plugins/maven/lib/maven3
#maven bin所在的目录
export M2=$M2_HOME/bin
#将maven bin加到PATH变量中
export PATH=$M2:$PATH
source ~/.bash_profile
chmod a+x /Applications/IntelliJ\ IDEA.app/Contents/plugins/maven/lib/maven3/bin/mvn
// 输入命令
vim ~/.bash_profile
//打开后配置环境变量,点i为输入,复制下面两句,MAVEN_HOME,换成自己下载的路径
export MAVEN_HOME=/Users/…/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
//配置完毕后 esc + :wq 保存退出
//输入 使配置生效
source ~/.bash_profile
//测试是否成功,要先装好jdk哦
mvn -version
15、maven配置不同环境配置文件
在application中配置,指定根据pom中的env变量去加载
profiles:
active: @env@
pom里面配置
<profiles>
<profile>
<id>local</id>
<properties>
<env>local</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
</profiles>
打包命令
mvn clean package -P local
mvn clean package -P dev
export MAVEN_HOME=/usr/local/apache-maven-3.8.7
export PATH=${PATH}:${MAVEN_HOME}/bin
https://archive.apache.org/dist/maven/maven-3/
wget https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
wget https://mirrors.aliyun.com/apache/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz