Maven入门教程(三):Maven语法

视频教程:Maven保姆级教程
Maven入门教程(一):安装Maven环境
Maven入门教程(二):idea/Eclipse使用Maven
Maven入门教程(三):Maven语法
Maven入门教程(四):Nexus私服
Maven入门教程(五):自定义脚手架

6.Maven基本用法

6.1 导入jar包

pom.xml是maven的核心配置文件,在pom.xml中可以定义工程的依赖关系,和引用jar包的信息。

<dependency>
  <groupId>junitgroupId>
  <artifactId>junitartifactId>
  <version>4.12version>
  <scope>testscope>
dependency>

这里引用了junit的jar包,版本是4.12

maven 项目不同的阶段引入到classpath中的依赖是不同的,例如,编译时,maven 会将与编译相关的依赖引入classpath中,测试时,maven会将测试相关的的依赖引入到classpath中,运行时,maven会将与运行相关的依赖引入classpath中。

依赖范围更为通俗的理解,其实就是给依赖包打标记,例如将 A 依赖包标记为“compile”,Maven 就知道 A 依赖包在项目编译的时候要被引入到 classpath 中。

可选配置有

compile:编译

test:测试,只对于测试classpath有效

provided:编译和测试classpath有效,但在运行时无效

runtime:运行时

system:本地,不从库里找

import:功能为将目标pom.xml 文件中元素 的配置导入合并到当前 pom.xml 文件的元素

若不指定则默认 compile。

6.2 配置插件

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.tomcat.mavengroupId>
      <artifactId>tomcat7-maven-pluginartifactId>
      <version>2.2version>
      <configuration>
        <path>/path>
        <port>8080port>
      configuration>
    plugin>
  plugins>
build>

pligins用于定义插件,此处引用了tomcat的插件。path是访问路径,如果我们同时运行多个项目,访问路径都是根路径,可以通过修改port端口号来访问项目。

6.3 maven命令

6.3.1 idea

Maven入门教程(三):Maven语法_第1张图片

Maven入门教程(三):Maven语法_第2张图片

Maven入门教程(三):Maven语法_第3张图片

命令clean tomcat7:run

配置成功后可以在工具栏里看到刚才配置的命令,点击绿色的三角

Maven入门教程(三):Maven语法_第4张图片

在浏览器里可以看到:

Maven入门教程(三):Maven语法_第5张图片

6.3.2 Eclipse

Maven入门教程(三):Maven语法_第6张图片

Maven入门教程(三):Maven语法_第7张图片

输入clean tomcat7:run

6.4 查看jar包

6.4.1 idea

通常,在pom.xml中加入后maven会自动下载jar包

在项目的External Libraries中可以看到maven下载的jar:

Maven入门教程(三):Maven语法_第8张图片

如果在pom.xml中加入后,在左侧看不到jar包,可以右键点击pom.xml,选择Maven->Reimport

Maven入门教程(三):Maven语法_第9张图片

或者在IDEA右侧点击Maven Project:

Maven入门教程(三):Maven语法_第10张图片

jar包没有正确引入的时候,pom.xml中会出现错误提示:

Maven入门教程(三):Maven语法_第11张图片

未正确引用的依赖,颜色是不一样的。具体提示的颜色与IntelliJ的主题有关。

6.4.2 Eclipse

Maven入门教程(三):Maven语法_第12张图片

6.5 排除jar冲突

<dependency>
	<groupId>junitgroupId>
	<artifactId>junitartifactId>
	
	<exclusions>
		<exclusion>
			<groupId>org.hamcrestgroupId>
			<artifactId>hamcrest-coreartifactId>
		exclusion>
	exclusions>
dependency>

6.6 引用本地jar

<dependency>
  <groupId>com.testgroupId>  
  <artifactId>xxxxartifactId>    
  <version>xxxx-SNAPSHOTversion> 
  <scope>systemscope> 
  <systemPath>${project.basedir}/lib/xxx.jarsystemPath> 
dependency>

7.Maven继承

7.1 pom工程

pom工程中只有一个pom.xml文件,不包含java和resource目录,它只用来保存一些依赖信息。

在pom.xml中添加依赖信息信息,如junit、mysql等,也可以定义插件信息:

<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.0modelVersion>
	<groupId>com.maven.testgroupId>
	<artifactId>test-parentartifactId>
	<version>0.0.1-SNAPSHOTversion>
	<packaging>pompackaging>
	
	<properties>
		<junit.version>4.12junit.version>
		<mysql.version>5.1.32mysql.version>
	properties>
	
	<dependencyManagement>
		<dependencies>
			
			<dependency>
				<groupId>junitgroupId>
				<artifactId>junitartifactId>
				<version>${junit.version}version>
			dependency>
			
			<dependency>
				<groupId>mysqlgroupId>
				<artifactId>mysql-connector-javaartifactId>
				<version>${mysql.version}version>
			dependency>
		dependencies>
	dependencyManagement>
	<build>
	    
		<finalName>${project.artifactId}finalName>
		 
		<plugins>
			
			<plugin> 
				<groupId>org.apache.maven.pluginsgroupId>
				<artifactId>maven-resources-pluginartifactId>
				<version>2.7version>
				
				<configuration>
					<encoding>UTF-8encoding>
				configuration>
			plugin>
			
			<plugin>
				<groupId>org.apache.maven.pluginsgroupId>
				<artifactId>maven-compiler-pluginartifactId>
				<version>3.2version>
				<configuration>
					<source>1.8source>
					<target>1.8target>
					<encoding>UTF-8encoding>
				configuration>
			plugin>
		plugins>
		
		<pluginManagement>
			<plugins>
				
				<plugin>
					<groupId>org.apache.tomcat.mavengroupId>
					<artifactId>tomcat7-maven-pluginartifactId>
					<version>2.2version>
				plugin>
			plugins>
		pluginManagement>
	build>
project>

7.2 创建子工程

在这里插入图片描述

在子工程中添加父工程里定义过的依赖:

<dependencies>
	<dependency>
		<groupId>junitgroupId>
		<artifactId>junitartifactId>
	dependency>
dependencies>

可以不用写版本号了,它会自动继承父工程里定义的版本。

8.打包

Maven入门教程(三):Maven语法_第13张图片

clean 清除编译结果

package 打包

install 安装到本地仓库

你可能感兴趣的:(maven,maven,java)