目录
一、maven简介
二、maven的安装及环境配置
三、maven的仓库介绍及配置
四、eclipse与maven的配置
五、maven项目测试
六、练习
一、maven简介
1. Maven简单介绍
Apache Maven是个项目管理和自动构建工具,基于项目对象模型(POM)的概念。
2. 作用:
完成项目的相关操作,如:编译,构建,单元测试,安装,网站生成和基于Maven部署项目。
maven能够帮助我们解决jar包依赖的问题,在做项目时,首先搭建环境要导入jar包,那我们的jar包一般是在百度上进行下载
maven在工程中的某一个xml文件中写入一个字符串,达到jar下载的作用,并且下载出跟jar包相匹配的版本(因为jar包之间可能会存在依赖关系的问题)
Apache Maven是个项目管理和自动构建工具,基于项目对象模型(POM)的概念。
2. 作用:
完成项目的相关操作,如:编译,构建,单元测试,安装,网站生成和基于Maven部署项目。
maven能够帮助我们解决jar包依赖的问题,在做项目时,首先搭建环境要导入jar包,那我们的jar包一般是在百度上进行下载
maven在工程中的某一个xml文件中写入一个字符串,达到jar下载的作用,并且下载出跟jar包相匹配的版本(因为jar包之间可能会存在依赖关系的问题)
2. 作用:
完成项目的相关操作,如:编译,构建,单元测试,安装,网站生成和基于Maven部署项目。
maven能够帮助我们解决jar包依赖的问题,在做项目时,首先搭建环境要导入jar包,那我们的jar包一般是在百度上进行下载
maven在工程中的某一个xml文件中写入一个字符串,达到jar下载的作用,并且下载出跟jar包相匹配的版本(因为jar包之间可能会存在依赖关系的问题)
maven在工程中的某一个xml文件中写入一个字符串,达到jar下载的作用,并且下载出跟jar包相匹配的版本(因为jar包之间可能会存在依赖关系的问题)
二、maven的安装及环境配置
下载maven安装包,解压即可使用
http://maven.apache.org/download.cgi
将该网址放百度上搜,
于是拿到以下的jar包:
之后对其进行解压:
其安装步骤跟jdk的安装相差无几:
1)双击安装
2)配置环境变量
1、配置maven环境变量:
MAVEN_HOME
步骤如下:
找到你桌面上的此电脑:
在填变量值时要点击 浏览目录,去找到你放置maven包 的 位置路径:
确定之后,就能看到了:
下载maven安装包,解压即可使用
http://maven.apache.org/download.cgi
将该网址放百度上搜,
于是拿到以下的jar包:
之后对其进行解压:
其安装步骤跟jdk的安装相差无几:
1)双击安装
2)配置环境变量
1、配置maven环境变量:
MAVEN_HOME
步骤如下:
找到你桌面上的此电脑:
在填变量值时要点击 浏览目录,去找到你放置maven包 的 位置路径:
确定之后,就能看到了:
2、 修改path添加maven相关路径:
配置方式跟jdk有些类似,环境变量MAVEN_HOME和M2_HOME的值为maven的根目录;然后在PATH环境变量里加入“%MAVEN_HOME%bin;%M2_HOME%bin;”即可:
3 、验证:
doc窗口执行命令“mvn –version”
三、maven的仓库介绍及配置
maven的jar包下载流程:
修改“MAVEN_HOMEconfig”下的setting.xml文件,配置本地仓库。注意是:“E:/”而非“E:”
在E盘新建一个文件夹: mvn_repository
进入复制其所在位置路径:
把路径复制到:
( 这里要注意修改斜杠)
注1:
注2:仓库的作用就是用来存放jar包的
注3:仓库的分类
注4:jar的查找顺序:本地仓库->私服->中央仓库
注5:换源“阿里云”
中央仓库
公司仓库(也叫私人仓库或私服)
本地仓库
中央仓库(http://search.maven.org/),
但一般使用另外一个网站:
https://mvnrepository.com/
(但此网站是国外网站,下载会很慢)
比如搜索"mysql":
公司仓库
本地仓库
公司里面还会有一个大仓库(本地)全公司使用
本地仓库程序员自己使用,私服全公司使用,中央仓库所有人用
四、eclipse与maven的配置
打开eclipse,找到菜单栏Window里的preference,搜索maven:
这里找到你maven包的路径位置:
勾选刚添加成功的:
再:
注意已自动为您切换Reindex位置:
这样操作下来eclipse与maven的配置就完成了!
五、maven项目测试
Ctrl+n:
而此时在E盘新建的文件夹 mvn_repository 内已经多了个文件:
进入eclipse :
但是项目是报错的:
那么一步步解决这个错:
Maven的使用:创建web项目
Maven project
maven-archetype-webapp注1:加入servlet api,不然报错
注2:修改Project Facets
web2.3->web2.5 jdk1.5->jdk1.8注3:添加的配置archetypeCatalog=internal可加快项目创建速度
archetypeCatalog用来指定maven-archetype-plugin读取archetype-catalog.xml文件的位置:
internal——maven-archetype-plugin内置的
local——本地的,位置为~/.m2/archetype-catalog.xml
remote——指向Maven中央仓库的Catalog
步骤:
选中项目右键:
进pom.xml:
这里简单提及一下 什么是POM?
Project Object Model,项目对象模型。
通过xml格式保存的pom.xml文件。作用类似ant的build.xml文件,功能更强大。
该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。
最后,根据你的项目需要更新您的pom.xml
这里提供pom.xml源代码:
4.0.0 com.zking test_mavenwar 0.0.1-SNAPSHOT test_maven Maven Webapp http://maven.apache.org junit junit4.12 test mysql mysql-connector-java5.1.44 javax.servlet javax.servlet-api4.0.1 provided test_maven org.apache.maven.plugins maven-compiler-plugin3.7.0 1.8 UTF-8
再找到菜单栏Window里的preference:
好,到这里项目就不再报错,问题得到解决啦!!!
接着测试:
DemoServlet:
源代码:
package com.ycx.demo; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; @WebServlet("/demo") public class DemoServlet extends HttpServlet{ @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { System.out.println("come in 。。。。。。"); } }
运行结果:
六、练习
util:
package com.zking.util; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class DBHelper { private static String driver; private static String url; private static String user; private static String password; static {// 静态块执行一次,加载 驱动一次 try { InputStream is = DBHelper.class .getResourceAsStream("config.properties"); Properties properties = new Properties(); properties.load(is); driver = properties.getProperty("driver"); url = properties.getProperty("url"); user = properties.getProperty("user"); password = properties.getProperty("pwd"); Class.forName(driver); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } public static Connection getConnection() { try { Connection conn = DriverManager.getConnection(url, user, password); return conn; } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } public static void close(ResultSet rs) { if (null != rs) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } } public static void close(Statement stmt) { if (null != stmt) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } } public static void close(Connection conn) { if (null != conn) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } } public static void myClose(Connection con,PreparedStatement ps,ResultSet rs) { try { if(rs!=null) { rs.close(); } if(ps!=null) { ps.close(); } if(con!=null&&!con.isClosed()) { con.close(); } } catch (Exception e) { e.printStackTrace(); } } public static void close(Connection conn, Statement stmt, ResultSet rs) { close(rs); close(stmt); close(conn); } public static boolean isOracle() { return "oracle.jdbc.driver.OracleDriver".equals(driver); } public static boolean isSQLServer() { return "com.microsoft.sqlserver.jdbc.SQLServerDriver".equals(driver); } public static boolean isMysql() { return "com.mysql.jdbc.Driver".equals(driver); } public static void main(String[] args) { Connection conn = DBHelper.getConnection(); DBHelper.close(conn); System.out.println("isOracle:" + isOracle()); System.out.println("isSQLServer:" + isSQLServer()); System.out.println("isMysql:" + isMysql()); System.out.println("数据库连接(关闭)成功"); } }
#oracle9i #driver=oracle.jdbc.driver.OracleDriver #url=jdbc:oracle:thin:@localhost:1521:ora9 #user=test #pwd=test #sql2005 #driver=com.microsoft.sqlserver.jdbc.SQLServerDriver #url=jdbc:sqlserver://localhost:1423;DatabaseName=test #user=sa #pwd=sa #sql2000 #driver=com.microsoft.jdbc.sqlserver.SQLServerDriver #url=jdbc:microsoft:sqlserver://localhost:1433;databaseName=unit6DB #user=sa #pwd=888888 #mysql5 #driver=com.mysql.jdbc.Driver #url=jdbc:mysql://127.0.0.1:3306/mybatis_ssm?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT #user=mybatis_ssm #pwd=xiaoli #mysql8 driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/yjy?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT&useSSL=true user=root pwd=123456
entity实体类:
package com.zking.entity; public class User { private Long id; private String name; private String loginName; private String pwd; private Long rid; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getLoginName() { return loginName; } public void setLoginName(String loginName) { this.loginName = loginName; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public Long getRid() { return rid; } public void setRid(Long rid) { this.rid = rid; } public User() { super(); // TODO Auto-generated constructor stub } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", loginName=" + loginName + ", pwd=" + pwd + ", rid=" + rid + "]"; } }
dao层:
package com.zking.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import com.zking.entity.User; import com.zking.util.DBAccess; import com.zking.util.DBHelper; public class UserDao { // 登录 public User login(User u){ Connection con=null; PreparedStatement ps=null; ResultSet rs=null; try { con=DBAccess.getConnection(); String sql="select * from t_oa_user where loginName=? and pwd=?"; ps = con.prepareStatement(sql); ps.setString(1, u.getLoginName()); ps.setString(2, u.getPwd()); rs=ps.executeQuery(); if(rs.next()) { u.setId(rs.getLong(1)); u.setName(rs.getString(2)); u.setLoginName(rs.getString(3)); u.setPwd(rs.getString(4)); u.setRid(rs.getLong(5)); } } catch (Exception e) { e.printStackTrace(); }finally { DBHelper.close(con, ps, rs); } return u; } }
UserAction :
package com.zking.web; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.zking.dao.UserDao; import com.zking.entity.User; @WebServlet("/login.do") public class UserAction extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //设置编码方式 req.setCharacterEncoding("utf-8"); resp.setCharacterEncoding("utf-8"); resp.setContentType("text/html; charset=UTF-8"); //拿out PrintWriter out = resp.getWriter(); UserDao ud=new UserDao(); //接收表单传值 String sname = req.getParameter("name"); String pwd = req.getParameter("pwd"); User u=new User(); u.setLoginName(sname); u.setPwd(pwd); User u1 = ud.login(u); if(u1!=null) { out.print(""); }else{ out.print(""); } } }
运行效果:
今日有关maven的分享就到这啦!再会~