Java学习笔记之Maven篇

 更新时间:2021年05月13日 11:20:44   作者:亭中独酌  
今天来回顾下Java学习笔记,文中对maven的核心,maven的结构以及maven能做什么都作出了详细的解释,,需要的朋友可以参考下

一、maven能做什么?

【本质】:将原材料(各种Java本身的类,不包括jar包)生产成为可运行的工程项目
Maven - 自动化构建工具,英文单词是专家内行的意思

1.方便管理jar包,jar包冲突?

2.打包web项目(节省jar包空间)

1.1 两大应用

依赖管理】maven的jar包放在jar包仓库,maven只存储jar包的坐标。(代码重用思想)
一键构建】编译、测试、运行、打包、安装、部署 操作一体化
【POM:Project Object Model 工程对象模型
【pom.xml】:maven工程核心配置文件(装载依赖)[同动态web中的web.xml]
【部署】:把编译结果“拿到”服务器指定目录下

1.2 maven 的核心

1.依赖管理:
POM项目对象模型,里面配置的是 ①项目自身的信息 ②项目所依赖的jar包的信息 ③项目运行环境的信息:jdk、tomcat信息。
依赖的jar包又涉及到依赖管理模型:公司的名称、项目名称、版本号

2.一键构建:maven默认生命周期

【图】

二、maven结构:

【maven安装】:本身就是绿化版,我们需要做的事情是配置好相关的环境变量和settings
【maven目录】:

bin: mvn.cmd命令
boot: 类加载器
config: settings.xml
lib: 有各种各样的jar包

2.1 maven工程标准目录结构

核心代码 src/main/java
配置文件 src/main/resources
测试代码 src/test/java
测试配置 src/test/resources
页面资源(jsp、css):src/main/webapp

2.2 配置系统变量

【1】MAVEN_HOME:就是maven的五脏都在的那个位置
【2】PATH:找到%MAVEN_HOME%\bin,里面有mvn的启动文件

【3】config/settings.xml中

 <!-- localRepository  重新编写再维护
   | The path to the local repository maven will use to store artifacts.   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
  
  <localRepository>B:\Environment\maven\maven_repository</localRepository>

坐标:

groupid:com.公司/组织.项目名
artifactid:模块名
version:版本

2.3 常用命令

mvn clean  == 清除项目编译信息(每个人的编译结果不一样,在新的环境下运行需要清除原有的东西)
mvn compile  == javac,编译出新的.class文件保存在target目录里面
mvn test  == main和test都编译了
mvn package  == 打成了war包,在pom.xml中可以配置打成什么格式。
mvn install  == 把项目打在了本地仓库
mvn deploy

几个小问题:

1.生命周期

编译,测试,打包,安装,发布
(清除生命周期)默认生命周期~~生老病死,(站点生命周期)

2.maven工程查找仓库的流程是什么?

pom.xml寻求依赖的jar包:一般的
先去本地仓库找jar包,再到远程仓库【私服】,在同一局域网就可以下载,最后才是中央仓库

①maven中央仓库(地址:http://repo2.maven.org/maven2/)
②maven私服(公司局域网内的仓库,需要自己搭建)
③其他公共远程仓库(例如apache提供的远程仓库,地址:http://repo.maven.apache.org/maven2/)

三、应用:idea集成maven插件

3.1 步骤

基本配置
【1】先在setting中配置maven_home、settings.xml
在runner配置先从本地获取插件(加上-DarchetypeCatalog=internal

【2】使用骨架创建maven工程:
手动补齐resources作为资源根目录

不使用骨架模板构建maven工程:自带main(java、resources)、test目录

使用骨架,找到mavenwebapp的原型:maven-archetype-webapp

【3】指定web资源包
创建servlet,导入jar包==》pom.xml里面导入jar包(配置依赖的groupId群组Id、artifactId工程Id、version版本)

两种方式导入jar包:(一般都看不到)
【本地】项目名称:配置servlet-api、jsp-api、公司名称、版本号
【网络】https://mvnrepository.com/

依赖书写规范:

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

scope

在这里插入图片描述

3.2 Tips

servlet-api包冲突
maven一键构建在【集成插件】中
设置scope是提供了的provided
用完之后要停止项目,避免端口占用

使用live Templates模板
确定tomcat
maven-compiler-plugin选定JDK

3.3 基本配置总结

pom.xml是Maven项目的核心配置文件,位于每个工程的根目录,基本配置如下:
<project > :文件的根节点 . 
<modelversion > : pom.xml使用的对象模型版本 
<groupId > :项目名称,一般写项目的域名 
<artifactId > :模块名称,子项目名或模块名称 
<version > :产品的版本号 .
	<packaging > :打包类型,一般有jar、war、pom 等 
<name > :项目的显示名,常用于 Maven 生成的文档。 
<description > :项目描述,常用于 Maven 生成的文档
<dependencies> :项目依赖构件配置,配置项目依赖构件的坐标
<build> :项目构建配置,配置编译、运行插件等。

四、示例

maven工程获取mysql数据(使用maven访问持久层)

package com.xianzai.demo.dao.impl;

import com.xianzai.demo.dao.StudentDao;
import com.xianzai.demo.pojo.StudentModel;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class StudentImpl implements StudentDao {
    public List<StudentModel> findOne() {
        List<StudentModel> list = new ArrayList<StudentModel>();
        try {
            String sql = "select * from stulist";
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3308/hzyc98", "root", "mysql");
            PreparedStatement ps = conn.prepareCall(sql);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                StudentModel stu = new StudentModel();
                stu.setCollege(rs.getString("college"));
                stu.setName(rs.getString("sname"));
                stu.setId(rs.getString("id"));
                list.add(stu);
            }
            System.out.println(list);
            rs.close();
            ps.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {

        }
        return list;
    }
}

到此这篇关于Java学习笔记之Maven篇的文章就介绍到这了,更多相关Java Maven内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 图文详解SpringBoot中Log日志的集成

    图文详解SpringBoot中Log日志的集成

    这篇文章主要给大家介绍了关于SpringBoot中Log日志的集成的相关资料,文中通过实例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-12-12
  • PageHelper插件实现一对多查询时的分页问题

    PageHelper插件实现一对多查询时的分页问题

    这篇文章主要介绍了PageHelper插件实现一对多查询时的分页问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • springboot下配置多数据源的方法

    springboot下配置多数据源的方法

    本篇文章主要介绍了springboot下配置多数据源的方法,具有一定的参考价值,有兴趣的可以了解一下
    2017-04-04
  • Java的内存机制详解

    Java的内存机制详解

    本文主要介绍了Java的内存机制的相关知识,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-03-03
  • Java 基础之事务详细介绍

    Java 基础之事务详细介绍

    这篇文章主要介绍了Java 基础之事务详细介绍的相关资料,需要的朋友可以参考下
    2017-03-03
  • SpringBoot使用validation做参数校验说明

    SpringBoot使用validation做参数校验说明

    这篇文章主要介绍了SpringBoot使用validation做参数校验说明,首先通过添加hibernate-validator展开全文内容,具有一定的参考价值,需要的小伙伴可以参考与喜爱
    2022-04-04
  • java实现单人版五子棋游戏

    java实现单人版五子棋游戏

    这篇文章主要为大家详细介绍了java实现五子棋小游戏的相关资料,十分简单实用,有不错的参考借鉴价值,推荐给大家,需要的朋友可以参考下
    2016-02-02
  • 使用MybatisPlus自定义模版中能获取到的信息

    使用MybatisPlus自定义模版中能获取到的信息

    这篇文章主要介绍了使用MybatisPlus自定义模版中能获取到的信息,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • AsyncHttpClient的TimeoutTimerTask连接池异步超时

    AsyncHttpClient的TimeoutTimerTask连接池异步超时

    这篇文章主要为大家介绍了AsyncHttpClient的TimeoutTimerTask连接池异步超时源码流程解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • java实现Dijkstra最短路径算法

    java实现Dijkstra最短路径算法

    这篇文章主要为大家详细介绍了java实现Dijkstra最短路径算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01

最新评论