前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >maven仓库之第一篇

maven仓库之第一篇

作者头像
海仔
发布2019-10-22 16:12:04
4430
发布2019-10-22 16:12:04
举报

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/zhao1299002788/article/details/102135509

maven jar仓库 :存放maven项目使用的jar包.
		中央仓库,存放99%免费开源项目jar包,apache公司负责维护的,以T为单位的存储.
		
	例如 : struts2-core-2.3.24 版本
		   maven项目通过坐标去仓库中,引入需要的jar包
		   groupId 公司信息, org.apache.struts
		   artifactId 项目信息, struts2-core
		   version	  版本信息, 2.3.24
	
	如果仓库中jar包很多,也可以对仓库创建索引提升查询速度.
	pom文件存放maven jar包的坐标.
	
	maven依赖管理 : 就是对jar包管理的过程.
	
	项目的一键管理:
		一键构建,实际是指,对于项目的某个流程动作,可以通过maven一个命令实现(编译---测试--- 运行 --打包---安装)
		什么是构建?
		指的是项目从编译 --- 测试 --- 运行  --打包 ----安装整个过程都交给maven进行管理,这个过程称为构建.
		
	maven_home 的环境变量配置
		%MAVEN_HOME%\bin;
		maven_home 是maven程序的安装路径.
		注意实现 : maven环境变量配置,必须要求,配置过JAVA_HOME变量名;
				   JAVA_HOME 必须是到jdk的安装目录可以看到bin;	
				   JAVA_HOME 路径,不要有(x86)
	配置环境变量是为了在命令行输入的命令,电脑会到path路径中寻找,你输入的命令,mvn.			   
				   
	maven工程的目录结构 :
		src 源码文件夹
			main
				java 开发的java代码;
				resources 开发使用的配置文件;
				webapp 相当于WebCotent 存放web工程的资源文件夹,css,jsp,image
			text
				java 测试使用的java代码
				resources
	pom.xml文件 是maven工程的核心配置文件,存放maven工程的坐标信息和maven项目使用的jar包坐标信息,其余的一些查询配置.
	只能满足maven工程目录结构的项目,才能使用maven命令运行.
		
	根据maven约定,一个比较标准的maven java web项目,	结合eclipse通常可以看到结构如下 :
		src/main/java			java主要代码存放目录
		src/main/resources		java配置文件存放目录
		src/test/java			java测试代码存放目录
		JRE System Library		jre中的一些jar包映射
		Maven Dependencies		根据pom.xml配置的依赖而导入的jar包映射
		src/main/webapp			web相关的文件,如html等
		src/test				这个目录暂时还没用过
		target					maven项目输出目录,例如生成多的war包
		pom.xml					maven项目最重要的一个文件
		
	Maven命令:
		compile :
			compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下.
		test :
			test是maven工程的测试命令,mvn test,会执行src/test/java 下的单元测试类.
		clean :
			clean是maven工程的清理命令,执行clean会删除target目录及内容.
		package :
			package是maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包.
		install :
			install 是maven工程的安装命令,执行install将maven打成jar包或者war包发布到本地仓库.
		deploye部署命令 : 
			是将打成的jar包或者war部署到公司私服服务器.
			某些工具类,处理字符串,格式化日期,解析xml文件.
		
		从运行结果中,可以看出:
			当后妈的命令执行时,前面的操作过程也都会自动执行,在同一生命周期内运行后面的命令,会自动执行前面的命令.
		
	三套生命周期 :
		maven 对项目构建过程分为三套相互独立的生命周期,请注意这里说的是"三套",而且"相互独立",这三套生命周期分别是:
			Clean Lifecycle 在进行真正的构建之前进行一些清理工作.
			Default Lifecycle 构建的核心部分,编译,测试,打包,安装,部署等.
			Site Lifecycle 生成项目报告,站点,发布站点.
		
	jar包冲突问题 :解决办法
		<!-- maven项目使用jar包的坐标节点 -->
		 <dependencies>
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>servlet-api</artifactId>
				<version>2.3</version>
				<scope>provided</scope> <!-- 这个就解决jar包冲突问题 -->
			</dependency>
		  </dependencies>
		
	Maven的目录结构 :
		bin : 放入了一些命令 : mvn tomcat:run.
		boot : 放了一些引导程序,类加载器.
		conf : 配置文件.
		lib : maven本身运行所需的jar包.
	
	pom.xml的配置文件 :
		<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
		  <modelVersion>4.0.0</modelVersion>
		  <groupId>com.baidu</groupId>
		  <artifactId>struts_maven</artifactId>
		  <version>0.0.1-SNAPSHOT</version>
		  <packaging>war</packaging>
		  <dependencies>
			<dependency>
				<groupId>org.apache.struts</groupId>
				<artifactId>struts2-core</artifactId>
				<version>2.3.24</version>
			</dependency>
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>servlet-api</artifactId>
				<version>2.3</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>4.10</version>
			</dependency>
		  </dependencies>
		  
		  <build>
				<plugins>
					<!-- 设置编译版本为1.7 -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-compiler-plugin</artifactId>
						<configuration>
							<source>1.7</source>
							<target>1.7</target>
							<encoding>UTF-8</encoding>
						</configuration>
					</plugin>
				</plugins>
			</build>
		  
		  
		  <properties>  
			<argLine>-Dfile.encoding=UTF-8</argLine>  
		</properties>  
		  
		</project>
		
	依赖范围包括 :
		依赖范围 : 对于编译classpath有效	对于测试classpath有效	 对于运行时classpath有效	例子------------------------------
		compile				Y						Y							Y					spring-core
		test				-						Y							-					Junit
		provided			Y						Y							-					servlet-api
		runtime				-						Y							Y					JDBC驱动
		system				Y						Y							-					本地的,Maven仓库之外的类库.
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档