Maven相关知识总结

Maven:

1、Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
2、Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。

Maven命令:

3.3 mvn compile 完成编译操作
执行完毕后,会生成target目录,该目录中存放了编译后的字节码文件。
3.4 mvn clean
执行完毕后,会将target目录删除。
3.4 mvn test
完成单元测试操作
执行完毕后,会在target目录中生成三个文件夹:surefire、surefire-reports(测试报告)、test-classes(测试的字节码文件)
3.4 mvn package
完成打包操作
执行完毕后,会在target目录中生成一个文件,该文件可能是jar、war
3.4 mvn install
 执行 mvn install命令,完成将打好的jar包安装到本地仓库的操作
 执行完毕后,会在本地仓库中出现安装后的jar包,方便其他工程引用

坐标的查找

访问http://www.mvnrepository.com

依赖管理:

1、scope依赖范围

依赖范围
其中依赖范围scope 用来控制依赖和编译,测试,运行的classpath的关系. 主要的是三种依赖关系如下:

compile: 默认编译依赖范围。对于编译,测试,运行三种classpath都有效
test:测试依赖范围。只对于测试classpath有效
provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api
runtime:运行时提供。例如:jdbc驱动

2、依赖传递

当第二依赖的范围是compile的时候,依赖可以传递
当第二直接依赖的范围是test的时候,依赖不会得以传递

3、依赖冲突

假如test1使用junit4.10依赖,并且scope是compile,那test2,test3都可以使用test1的junit4.10,因为传递下来了
假如test2使用junit4.9依赖,那test3会使用【就近的一个依赖】,也就是使用junit4.9

4、可选依赖

<optional> true/false<optional> 是否可选,也可以理解为是否向下传递。
在依赖中添加optional选项决定此依赖是否向下传递,如果是true则不传递,如果是false就传递,默认为false

在这里插入图片描述

3、排除依赖

exclusions可用于排除依赖,注意exclusions是写在dependency中

在这里插入图片描述

Maven插件

1、更改jdk的配置代码

在这里插入图片描述

<build>
  	<plugins>
  		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<configuration>
				<source>1.8</source>
				<target>1.8</target>
				<encoding>UTF-8</encoding>
			</configuration>
		</plugin>
  	</plugins>
  </build>

配置tomcat7的指令`

<build>
		<plugins>
			<plugin>
				<!-- 配置插件tomcat7 -->
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<configuration>
					<port>8080</port>
					<path>/</path>
				</configuration>
			</plugin>
		</plugins>
</build>在这里插入代码片

配置jetty跑web项目

<build>
		<finalName>test4</finalName>
		<plugins>
			<plugin>
				<groupId>org.mortbay.jetty</groupId>
				<artifactId>maven-jetty-plugin</artifactId>
				<version>6.1.26</version>
				<configuration>
					<scanIntervalSeconds>10</scanIntervalSeconds>
					<webApp>${basedir}/target/test4</webApp>
					<webAppConfig>
						<!-- 访问路径 根路径访问,演示/test4又是什么情况-->
						<contextPath>/</contextPath>
					</webAppConfig>
					<connectors>
						<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
							<port>8888</port>
							<headerBufferSize>16192</headerBufferSize>
						</connector>
					</connectors>
				</configuration>
			</plugin>
		</plugins>
	</build>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值