本文共 12694 字,大约阅读时间需要 42 分钟。
比如javax.servlet-api-4.0.1.jar 实际存储如图所示:
对应的Maven配置就是:
javax.servlet javax.servlet-api 4.0.1 provided
对应的本地Maven仓库地址文件路径就是:
C:\Users\fairy\.m2\repository\javax\servlet\servlet-api\2.4
Maven本地默认仓库地址为:
${user.home}.m2/repository
修改Maven安装目录下的配置文件
%MAVEN_HOME%/conf/settings.xml
配置如下:
${user.home}/.m2/repository
修改用户目录下的配置文件
${user.home}.m2/settings.xml
共享统用settings.xml配置如下:
${user.home}/.m2/repository
安装完Maven,本地仓库几乎是空的,这时候需要从远程仓库下载所需的构件。
即中央仓库。仓库地址:UK UK Central http://uk.maven.org/maven2 central
美国官方中央仓库地址:
http://repo.maven.apache.org/maven2
英国官方中央仓库地址:
http://uk.maven.org/maven2
阿里云中央仓库地址:
alimaven aliyun maven https://maven.aliyun.com/repository/public false true
Maven的所有构件都是通过坐标进行组织和管理。maven的坐标通过五个元素进行定义,其中groupId,artifactld,version 是必须的,package 是可选的(默认为jar)
classifier 是不能直接定义的。执行不同的Maven命令(mvn package,mvn test,mvn install......),会使用不同的classpath,运行classpath。
scope选项的值,决定了该依赖构件会被引入到哪一个classpath中。
M2_HOMEC:\Apps\maven\apache-maven-3.6.0
如下所示:
3.复制安装目录下的settings.xml到用户目录下安装目录路径如下:%MAVEN_HOME%/conf/settings.xml
比如我的就是:
C:\Apps\maven\apache-maven-3.6.0\conf\setings.xml
用户目录路径如下:
${user.home}.m2/repository
比如我们的就是:
C:\Users\fairy\.m2\settings.xml
${user.home}/.m2/repository true false org.mortbay.jetty org.sonatype.plugins org.sonarsource.scanner.maven myShareProfile alimaven aliyun maven https://maven.aliyun.com/repository/public false true Centeral Central Maven2 http://central.maven.org/maven2 false true UK UK Central http://uk.maven.org/maven2 false true SpringPlugin Spring Plugins http://mvnrepository.com/repos/sonatype-releases false true SpringLibs Spring Libs http://repo.spring.io/libs-milestone/ true true spring-snapshots Spring Snapshots https://repo.spring.io/libs-snapshot-local true spring-milestones Spring Milestones https://repo.spring.io/libs-milestone-local false spring-releases Spring Releases https://repo.spring.io/libs-release-local false Snoatype Snoatype http://mvnrepository.com/repos/sonatype-releases false true Atlassian Atlassian Repository https://maven.atlassian.com/content/repositories/atlassian-public/ false true Hortonworks Hortonworks Repository http://repo.hortonworks.com/content/repositories/releases/ false true Jboss JBoss Releases Repository https://repository.jboss.org/nexus/content/repositories/releases/ false true Nexeo Nuxeo Releases Repository https://maven-eu.nuxeo.org/nexus/content/repositories/public-releases/ false true XWiki XWiki Releases Repository http://maven.xwiki.org/releases/ false true Apache Apache Releases Repository https://repository.apache.org/content/repositories/releases/ false true nexus-aliyun http://maven.aliyun.com/nexus/content/groups/public true true spring-snapshots Spring Snapshots https://repo.spring.io/libs-snapshot-local true spring-milestones Spring Milestones https://repo.spring.io/libs-milestone-local false myShareProfile
STS 是Spring官方团队出品的,最友好支持Spring的Eclipse衍生版本。
STS 下载地址:
STS 已经继承了Maven插件,Maven并不执行任何具体的构件任务,所有这些任务都交给具体的插件来完成,例如:STS默认安装了一个版本的Maven,但是一般我们更换我们自己安装的。
1.空白处右键 New-------> Other...
2.输入maven关键字,找到maven Project3.进入New Maven Project界面4.选择项目模板Catalog下拉选择Internal,Filter 过滤器选择web,选中,然后Next5.填写项目信息,然后点击Finish即可6.修改JDK改变目录结构完成后我们看到的目录结构会是这个样子的
因此我们需要修改下JDK,选中项目右键----Build Path----->Configure Build Path...
切换到library选项卡,选中图中所示的,点击Edit...
选择工作空间的JDK1.8
然后可以发现我们的项目结构已经发生改变了。
7.修改项目配置切换到Navigator视图然后可以看到
将原来的1.5 改成1.8
org.eclipse.jdt.core.prefs修改前eclipse.preferences.version=1org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5org.eclipse.jdt.core.compiler.compliance=1.5org.eclipse.jdt.core.compiler.problem.forbiddenReference=warningorg.eclipse.jdt.core.compiler.processAnnotations=disabledorg.eclipse.jdt.core.compiler.release=disabledorg.eclipse.jdt.core.compiler.source=1.5
org.eclipse.jdt.core.prefs修改后
eclipse.preferences.version=1org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8org.eclipse.jdt.core.compiler.compliance=1.8org.eclipse.jdt.core.compiler.problem.forbiddenReference=warningorg.eclipse.jdt.core.compiler.processAnnotations=disabledorg.eclipse.jdt.core.compiler.release=disabledorg.eclipse.jdt.core.compiler.source=1.8
8.pom.xml 修改如下:
4.0.0 com.xingyun helloworld_web_maven_sample war 0.0.1-SNAPSHOT helloworld_web_maven_sample Maven Webapp http://maven.apache.org 3.1.0 javax.servlet javax.servlet-api ${servlet.version} jar provided helloapp org.apache.tomcat.maven tomcat7-maven-plugin 2.2 http://localhost:8080/manager/text tomcat admin admin /${project.build.finalName} maven-compiler-plugin 3.0
9.选中项目执行安装依赖
mvn install
当看到Build Success 说明成功
9.运行项目,命令执行后我们的项目就运行到tomcat7中了选中项目右键-----Run As------>maven build...tomcat7:run
10.然后打开浏览器访问网站即可
感谢你耐心阅读本篇,最后送上一个神器命令,这个命令可帮助我们解决Maven依赖冲突.
使用场景,比如A-1.2.jar 包依赖于 B-0.1.jar ,然而项目中已经引入了一个较高版本B-1.1.jar,我们想要的结果是只有A-1.2.jar 和B-1.1.jar 首先通过这个Maven照妖镜命令查找Maven依赖树mvn dependency:tree
当执行成功后可以看到这个
其中,org.apache.ws.xmlschema 是 group id,xmlschema-core: 是artifactIdjar: 指的压缩类型2.2.1 指的是版本号xml-resolver xml-resolver 1.2 org.apache.ws.xmlschema xmlschema-core
exclusions的意思是移除自身传递的依赖jar包
再学一招,除了刚才的方法外,我们还可以指定全局统一版本的方法
这个配置的作用不会下载依赖,仅仅用来统一版本号antlr antlr 2.7.7
配置项目本地私有包
com.xingyun test 1.0 system ${project.basedir}/src/main/resources/lib/test-1.0.jar
注:
${project.basedir}是Maven内置属性,内置属性(Maven预定义,用户可以直接使用)
yyyy-MM-dd HH:mm:ss
Maven 生命周期
validate,initialize,generate-sources,process-sources,generate-resources,process-resources,compile,process-classes,generate-test-sources,process-test-sources,generate-test-resources,process-test-resources,test-compile,process-test-classes,test,prepare-package,package,pre-integration-test,integration-test,post-integration-test,verify,install,deploy,pre-clean,clean,post-clean,pre-site,site,post-site,site-deploy.
本篇完~
转载地址:http://ooxto.baihongyu.com/