Maven项目中常用jar包的坐标以及用法(个人总结)

时间:2022-07-22
本文章向大家介绍Maven项目中常用jar包的坐标以及用法(个人总结),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

使用方式

本文仅凭自己最近所学而总结,如有不足还望大家批评指正~~~

首先来说,坐标的实现时基于Maven的,所以需要配置Maven的仓库以及配置文件.详情 Maven: https://blog.csdn.net/qq_43371556/article/details/96187154

在Maven环境搭建好后,一般来说,是需要创建一个pom项目的,他的作用是对jar的版本进行统一配置. 在配置时,只需要将maven项目的类型改为pom,然后将本博文最后的模板引入即可.

在parent项目写好以后, 创建自己的项目,注意要填写父项目!!!然后将本文介绍的坐标直接放入即可

当然,你也可以自己去maven的官网添加jar , Maven仓库官网 : https://mvnrepository.com/

在找到相关的坐标后,不要忘记添加dependencies标签, 在这个标签下可以添加很多的坐标,保存完毕后,maven自动为你下载这些包到你配置的本地仓库, 下次下载时,即可实现无需下载即可引入的功能

<dependencies>
  <坐标标签>
 </dependencies>

junit

介绍

JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。

JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。

坐标

<!-- 单元测试 -->
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit.version}</version>
			</dependency>

log4j

介绍

log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。 log4j被许多jar包依赖,所以在导入时,需要查看相关jar包是否已经被导入

坐标

<!-- 日志处理 -->
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-log4j12</artifactId>
				<version>${slf4j.version}</version>
			</dependency>

Mybatis

介绍

MyBatis 本是apache的一个开源项目 iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)

坐标

<!-- Mybatis -->
			<dependency>
				<groupId>org.mybatis</groupId>
				<artifactId>mybatis</artifactId>
				<version>${mybatis.version}</version>
			</dependency>

mybatis-spring

介绍

将mybatis整合到spring框架中,通常与mybatis的jar一起使用

坐标

	<dependency>
				<groupId>org.mybatis</groupId>
				<artifactId>mybatis-spring</artifactId>
				<version>${mybatis.spring.version}</version>
			</dependency>

MySql

介绍

数据库连接驱动,通常与前两个坐标一起被引用

坐标

<!-- MySql -->
			<dependency>
				<groupId>mysql</groupId>
				<artifactId>mysql-connector-java</artifactId>
				<version>${mysql.version}</version>
			</dependency>

druid(数据库连接池)

介绍

Druid(德鲁伊)是阿里巴巴开发的号称为监控而生的数据库连接池,Druid是目前最好的数据库连接池。在功能、性能、扩展性方面,都超过其他数据库连接池,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。

坐标

	<!-- 连接池 -->
			<dependency>
				<groupId>com.alibaba</groupId>
				<artifactId>druid</artifactId>
				<version>${druid.version}</version>
			</dependency>

spring+springmvc框架

介绍

搭建spring+springmvc所用到的全部坐标

spring-context 这个 jar 文件为 Spring 核心提供了大量扩展。可以找到使用 Spring ApplicationContext 特性时所需的全部类, JDNI 所需的全部类, UI 方面的用来与模板 (Templating) 引擎如 Velocity、 FreeMarker、JasperReports 集成的类,以及校验 Validation 方面的相关类。 spring-beans beans是基本的jar。他包含访问配置文件,创建和管理bean,以及控制反转,注入操作的所有相关类。如果只用到Ioc/DI,则只需引入core与beans就足够了。平常用的Autowired就是用的这个包的 spring-webmvc 这个 jar 文件包含 Spring MVC 框架相关的所有类。包含国际化、标签、Theme、视图展 现的 FreeMarker、JasperReports、Tiles、Velocity、XSLT 相关类。当然,如果你的应用使用了 独立的 MVC 框架,则无需这个 JAR 文件里的任何类。 spring-jdbc.jar 这个jar 文件包含对Spring 对JDBC 数据访问进行封装的所有类。 spring-aspects spring与aspect的框架整合.

坐标

	<!-- Spring -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-context</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-beans</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-webmvc</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-jdbc</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-aspects</artifactId>
				<version>${spring.version}</version>
			</dependency>

jstl+servlet-api+jsp-api

介绍

jstl JSP 标准标签库(JSP Standard Tag Library,JSTL)是一个实现 Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。在 developerWorks 上其新系列的第一篇文章中,软件工程师Mark Kolb 向您展示了如何使用 JSTL 标记来避免在 JSP 页面中使用脚本编制元素。 servlet-api java的servlet开发规范 jsp-api jsp开发规范

坐标

<!-- JSP相关 -->
			<dependency>
				<groupId>jstl</groupId>
				<artifactId></artifactId>
				<version>${jstl.version}</version>
			</dependency>
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>servlet-api</artifactId>
				<version>${servlet-api.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>jsp-api</artifactId>
				<version>${jsp-api.version}</version>
				<scope>provided</scope>
			</dependency>

commons-fileupload

介绍

fileupload可以有许多不同的使用方式。在最简单servlet请求,然后在他们fileupload进行自定义,以完全控制个别表单项存储的方法。比如,fileupload的基本使用方法,然后解释一些更简fileupload的个性化在这里得到了描RFC1867html中基于表单的文件上传。fileupload能解析这样一FileItem接口,而不需要考虑它潜在的实现方式。每个InputStream来取它的数html表单域,还是一个能被上FileItem接口提供了多种方法来判断它是否是一个可上传的FileUpload使FileItemFactory来创建新的文件项目。这正是给FileUpload带来灵活 通常与commons-net包一起使用,用于文件在网络上的传输

坐标

	<!-- 文件上传组件 -->
			<dependency>
				<groupId>commons-fileupload</groupId>
				<artifactId>commons-fileupload</artifactId>
				<version>${commons-fileupload.version}</version>
			</dependency>

shiro-core

介绍

Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和 会话管理等功能。 对于任何一个应用程序,Shiro都可以提供全面的安全管理服务。其不仅可 以用在JavaSE环境,也可以用在JavaEE环境。 在引入坐标时,一般与日志包一起添加

坐标

<dependency> 
		<groupId>org.apache.shiro</groupId> 
		<artifactId>shiro-core</artifactId> 
		<version>1.3.2</version> 
	</dependency> 
	<!-- Shiro use SLF4J for logging. We'll use the 'simple' binding         in this example app. See http://ww.slf4j.org for more info. -->
	 <dependency> 
		 <groupId>org.slf4j</groupId> 
		 <artifactId>slf4j-simple</artifactId>
		  <version>1.7.5</version> 
		  <scope>test</scope> 
	  </dependency> 

commons-net

介绍

Apache共享网™库实现了许多基本的Internet协议的客户端。图书馆的目的是提供基本协议的访问,而不是更高层次的抽象。因此,一些设计违反了面向对象的设计原则。我们的理念是访问的协议(例如,TFTP文件发送和接收文件)时,可能使全球的功能,而且还提供访问的基本协议(如适用),使程序员可以构建自己的定制实现(例如,TFTP包类和TFTP报文的发送和接收方法暴露),常用于ftp文件传输(上传与下载) 或与HTTPClient 一起引入 FTPClient 是 Apache 提供的一个开源的基于 JAVA 语言的 FTP 客户端工具。 FTPClient 位于 Apache 的 commons-net 项目中。 与文件上传下载配合的jar包使用

坐标

	<dependency>
				<groupId>commons-net</groupId>
				<artifactId>commons-net</artifactId>
				<version>${commons-net.version}</version>
			</dependency>

jackson-databind

介绍

进行json格式转换所需要的jar包,在使用@resquestBody . @ResponseBody也需要此包的支持

坐标

	<!-- Jackson Json处理工具包 -->
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-databind</artifactId>
				<version>${jackson.version}</version>
			</dependency>

jedis

介绍

用于java整合redis项目所使用

坐标

<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
			<version>${jedis.version}</version>
		</dependency>

solr-solrj

介绍

用于java整合solr技术所使用

坐标

<dependency>
			<groupId>org.apache.solr</groupId>
			<artifactId>solr-solrj</artifactId>
			<version>${solrj.version}</version>
		</dependency>

httpclient

介绍

用于java整合httpclient

坐标

	<!-- HTTPClient -->
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<version>${httpclient-version}</version>
		</dependency>

activemq-all

介绍

java整合ActiveMq所需jar包

坐标

<!-- ActiveMQ客户端完整jar包依赖 -->
		<dependency>
			<groupId>org.apache.activemq</groupId>
			<artifactId>activemq-all</artifactId>
			<version>${activemq.version}</version>
		</dependency>

资源拷贝插件

介绍

用于在jar包打包时, 对xml配置文件进行拷贝, 需要在坐标外部加 build双标签进行逻辑引入.

坐标

<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<includes>
					<include>**/*.xml</include>
					<include>**/*.properties</include>
				</includes>
			</resource>
		</resources>

Tomcat远程部署插件

介绍

无需打开tomcat即可部署web项目,可实现虚拟机和windows上的热部署, 需要在坐标外部加 build双标签进行逻辑引入 . .具体看本人关于maven的博文

坐标

	<!-- tomcat插件,由于子项目不一定每个都是web项目,所以该插件只是声明,并未开启 -->
			<plugins>
				<!-- 配置Tomcat插件 -->
				<plugin>
					<groupId>org.apache.tomcat.maven</groupId>
					<artifactId>tomcat7-maven-plugin</artifactId>
					<configuration>
						<path>/</path>
						<port>8080</port>
					</configuration>
				</plugin>
			</plugins>

Parent项目的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.bjsxt</groupId>
  <artifactId>parent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>

	 <!-- 对依赖的jar包的版本统一进行定义 -->
	<properties>
		<httpclient-version>4.3.5</httpclient-version>
		<activemq.version>5.9.0</activemq.version>
		<solrj.version>4.10.3</solrj.version>
		<jedis.version>2.9.0</jedis.version>
		<junit.version>4.12</junit.version>
		<spring.version>4.1.3.RELEASE</spring.version>
		<mybatis.version>3.2.8</mybatis.version>
		<mybatis.spring.version>1.2.2</mybatis.spring.version>
		<mysql.version>5.1.32</mysql.version>
		<slf4j.version>1.6.4</slf4j.version>
		<druid.version>1.0.9</druid.version>
		<jstl.version>1.2</jstl.version>
		<servlet-api.version>2.5</servlet-api.version>
		<tomcat.version>2.2</tomcat.version>
		<jsp-api.version>2.0</jsp-api.version>
		<zkClient-version>0.10</zkClient-version>
		<dubbo-version>2.5.4</dubbo-version>
		<jackson.version>2.4.2</jackson.version>
		<commons-net.version>3.3</commons-net.version>
		<commons-fileupload.version>1.3.1</commons-fileupload.version>
	</properties>


	<!-- jar包的依赖注入 ,由于该工程是一个父工程,所以jar包在该pom文件中只是声明 -->
	<dependencyManagement>
		<dependencies>
		<!-- HTTPClient -->
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<version>${httpclient-version}</version>
		</dependency>
		
		<!-- ActiveMQ客户端完整jar包依赖 -->
		<dependency>
			<groupId>org.apache.activemq</groupId>
			<artifactId>activemq-all</artifactId>
			<version>${activemq.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.solr</groupId>
			<artifactId>solr-solrj</artifactId>
			<version>${solrj.version}</version>
		</dependency>
		<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
			<version>${jedis.version}</version>
		</dependency>
			<!-- 单元测试 -->
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit.version}</version>
			</dependency>
			<!-- 日志处理 -->
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-log4j12</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<!-- Mybatis -->
			<dependency>
				<groupId>org.mybatis</groupId>
				<artifactId>mybatis</artifactId>
				<version>${mybatis.version}</version>
			</dependency>
			<dependency>
				<groupId>org.mybatis</groupId>
				<artifactId>mybatis-spring</artifactId>
				<version>${mybatis.spring.version}</version>
			</dependency>
			<!-- MySql -->
			<dependency>
				<groupId>mysql</groupId>
				<artifactId>mysql-connector-java</artifactId>
				<version>${mysql.version}</version>
			</dependency>
			<!-- 连接池 -->
			<dependency>
				<groupId>com.alibaba</groupId>
				<artifactId>druid</artifactId>
				<version>${druid.version}</version>
			</dependency>
			<!-- Spring -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-context</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-beans</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-webmvc</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-jdbc</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-aspects</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<!-- JSP相关 -->
			<dependency>
				<groupId>jstl</groupId>
				<artifactId>jstl</artifactId>
				<version>${jstl.version}</version>
			</dependency>
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>servlet-api</artifactId>
				<version>${servlet-api.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>jsp-api</artifactId>
				<version>${jsp-api.version}</version>
				<scope>provided</scope>
			</dependency>
			<!-- 文件上传组件 -->
			<dependency>
				<groupId>commons-fileupload</groupId>
				<artifactId>commons-fileupload</artifactId>
				<version>${commons-fileupload.version}</version>
			</dependency>
			
			<dependency>
				<groupId>commons-net</groupId>
				<artifactId>commons-net</artifactId>
				<version>${commons-net.version}</version>
			</dependency>
			
			<!-- Jackson Json处理工具包 -->
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-databind</artifactId>
				<version>${jackson.version}</version>
			</dependency>
	
		</dependencies>
	</dependencyManagement>

	<build>
		<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<includes>
					<include>**/*.xml</include>
					<include>**/*.properties</include>
				</includes>
			</resource>
		</resources>
		<!-- tomcat插件,由于子项目不一定每个都是web项目,所以该插件只是声明,并未开启 -->
		<pluginManagement>
			<plugins>
				<!-- 配置Tomcat插件 -->
				<plugin>
					<groupId>org.apache.tomcat.maven</groupId>
					<artifactId>tomcat7-maven-plugin</artifactId>
					<version>${tomcat.version}</version>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>

补充

Dubbo

介绍

用于服务的输入和输出 ,通常与zookeeper 一起使用。实现服务的发布与消费

坐标

<!-- https://mvnrepository.com/artifact/com.alibaba/dubbo -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.5.3</version>
</dependency>

Zookeeper

介绍

用于部署集群,分散服务器压力 ,分布式软件开发环境的搭建 .常与Dubbo连用

坐标

<!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper -->
<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.4.6</version>
</dependency>



<!-- zookeeper客户端 -->
		<dependency>
				<groupId>com.101tec</groupId>
				<artifactId>zkclient</artifactId>
				<version>3.4.6</version>
		</dependency>