YD:MAVEN配置使用

MAVEN配置及使用

1、安装

1.1下载 http://maven.apache.org/download.cgi#(官网)

YD:MAVEN配置使用_第1张图片

2、配置环境变量

MAVEN_HOME:maven地址

Path(新建):%MAVEN_HOME%\bin
YD:MAVEN配置使用_第2张图片
YD:MAVEN配置使用_第3张图片
配置maven文件下下conf文件中setting.xml中标签加入阿里巴巴镜像

 <mirror>
        <id>alimavenid>
        <name>aliyun mavenname>
        <url>
            http://maven.aliyun.com/nexus/content/groups/public/
        url>
        <mirrorOf>centralmirrorOf>
    mirror>

命令行测试

mvn -v 成功会出现
YD:MAVEN配置使用_第4张图片

2、idea集成MAVEN

2.1idea中设置

YD:MAVEN配置使用_第5张图片

YD:MAVEN配置使用_第6张图片

2.2idea新项目maven

MVEN配置好,如果新建项目仍然是idea自带的maven3即可进入c盘修改默认配置文件

YD:MAVEN配置使用_第7张图片

 <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>

YD:MAVEN配置使用_第8张图片

3、MAVEN简介

YD:MAVEN配置使用_第9张图片

MAVEN的生命周期

clean 单独删除target目录

validate验证 compile编译 test测试 package打包 verify验证 install安装 site deploy部署

验证(validate) - 验证项目是否正确,所有必要的信息可用
编译(compile) - 编译项目的源代码
测试(test) - 使用合适的单元测试框架测试编译的源代码。这些测试不应该要求代码被打包或部署
打包(package) - 采用编译的代码,并以其可分配格式(如JAR)进行打包。
验证(verify) - 对集成测试的结果执行任何检查,以确保满足质量标准
安装(install) - 将软件包安装到本地存储库中,用作本地其他项目的依赖项
部署(deploy) - 在构建环境中完成,将最终的包复制到远程存储库以与其他开发人员和项目共享。
这些生命周期阶段(以及此处未显示的其他生命周期阶段)依次执行,以完成默认生命周期。给定上述生命周期阶段,这意味着当使用默认生命周期时,Maven将首先验证项目,然后尝试编译源代码,运行这些源代码,打包二进制文件(例如jar),运行集成测试软件包,验证集成测试,将验证的软件包安装到本地存储库,然后将安装的软件包部署到远程存储库。

4、MAVEN仓库

在 Maven 的术语中,仓库是一个位置(place)。

Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。

在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。

Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。

Maven 仓库有三种类型:

  • 本地(local)
  • 中央(central)
  • 远程(remote)

Maven 所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。

Maven 中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的库。

中央仓库包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息等。一般来说,简单的Java项目依赖的构件都可以在这里下载到。

如果 Maven 在中央仓库中也找不到依赖的文件,它会停止构建过程并输出错误信息到控制台。为避免这种情况,Maven 提供了远程仓库的概念,它是开发人员自己定制仓库,包含了所需要的代码库或者其他工程中用到的 jar 文件。

5、Maven的坐标

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
		 
       

6、创建Maven工程

6.1 创建maven 普通的java工程

YD:MAVEN配置使用_第10张图片
在pom



  
    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

6.2 创建MAVEN Servlet工程

YD:MAVEN配置使用_第11张图片

YD:MAVEN配置使用_第12张图片

YD:MAVEN配置使用_第13张图片

测试:将war包放到tomcat,webapps文件中 启动tomcat 会根据war包自动创建项目的文件夹访问即可(前提配置环境变量)

startup启动tomcat

shutdown关闭

7、打包类型

项目的打包类型:pom、jar、war

packing默认是jar类型,

pom ---------> 父类型都为pom类型 父子工程需要

jar ---------> 内部调用或者是作服务使用

war ---------> 需要部署的项目

8、依赖管理

依赖范围

依赖范围就是用来控制依赖与这三种classpath(编译classpath、测试classpath、运行classpath)的关系,Maven有以下几种依赖范围。

  • compile: 编译依赖范围。

如果没有指定,就会默认使用该依赖范围。使用此依赖范围的maven依赖,对于编译 测试 运行三种的classpath都有效。

  • test:测试依赖范围。

使用此依赖范围的Maven依赖,只对于测试的classpath有效,在编译主代码或者运行主代码的时候都无法依赖此类依赖。典型的例子是jUnit,它只有在编译测试代码及运行测试代码的时候才有效。

  • provided:以提供依赖范围。

使用此依赖范围的maven依赖,对于编译和测试classpath有效,但在运行时无效。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行的时候,由于容器已经提供,就不需要maven重复地引入一遍。打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude操作

  • runtime:运行时依赖范围。

使用此依赖范围的maven依赖,对于测试和运行classpath有效,但在编译主代码时无效。典型的例子是JDBC驱动实现,项目主代码的编译只需要jdk提供的jdbc的接口,只有在执行测试或者运行测试的时候才需要实现上述接口的jdbc的驱动

9、依赖报错及解决

1、junit错误



    junit
    junit
    4.12
    
    test

在单元测试文件夹下,没有@Test ,解决方法是:
去掉scope作用域,使用默认的compile,编译、测试、运行都有效的作用域

10、idea自带maven设置setting

在每一个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>

11、依赖下载失败

使用everthing搜索lastupdate删除

依赖下载失败,在repository文件夹下,cmd,

for /r %i in (*.lastUpdated) do del %i   要进入本地仓库

12、手动导包

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中的仓库,跟手动导包的位置是一致的。

13、jar包明明导入在配置文件中找不到

在这里插入图片描述
在这里插入图片描述

解决方案
YD:MAVEN配置使用_第14张图片

14、Mac m1配置idea自带maven

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

linux安装maven

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

你可能感兴趣的:(安装手册,maven,java,intellij-idea)