Java学习笔记之Maven篇

网友投稿 238 2023-01-15

Java学习笔记之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中

B:\Environment\maven\maven_repository

坐标:

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/

依赖书写规范:

javax.servlet

javax.servlet-api

3.1.0

provided

scope:

3.2 Tips

servlet-api包冲突

maven一键构建在【集成插件】中

设置scope是提供了的provided

用完之后要停止项目,避免端口占用

使用live Templates模板

确定tomcat

maven-compiler-plugin选定JDK

3.3 基本配置总结

pom.xml是Maven项目的核心配置文件,位于每个工程的根目录,基本配置如下:

:文件的根节点 .

: pom.xml使用的对象模型版本

:项目名称,一般写项目的域名

:模块名称,子项目名或模块名称

:产品的版本号 .

:打包类型,一般有jar、war、pom 等

:项目的显示名,常用于 Maven 生成的文档。

:项目描述,常用于 Maven 生成的文档

:项目依赖构件配置,配置项目依赖构件的坐标

:项目构建配置,配置编译、运行插件等。

四、示例

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 findOne() {

List list = new ArrayList();

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;

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:总结java多线程之互斥与同步解决方案
下一篇:浅谈Java基础知识之BigDecimal
相关文章

 发表评论

暂时没有评论,来抢沙发吧~