第二章、Maven核心程序解压与配置

第二章、Maven核心程序解压与配置

第一节、Maven核心程序解压与配置

1、Maven官网地址

Maven – Welcome to Apache Maven

2、解压Maven核心程序

1、conf/settings.xml是核心配置文件

3、指定本地仓库

1、在conf/settings.xml文件中配置

  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.hom e}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
  <!-- 配置Maven本地仓库
        这个目录文件夹如果配置也会自动创建或手动创建
  -->
  <localRepository>d:\maven-repo</localRepository>

4、配置阿里云提供的镜像仓库

1、远程下载境外中央仓库,下好就可以放在本地仓库

2、使用阿里云的镜像,免费,快

1、配置方式

1、注释掉原有的例子(仓库提供的)

    <!-- <mirror>
      <id>maven-default-http-blocker</id>
      <mirrorOf>external:http:*</mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <url>http://0.0.0.0/</url>
      <blocked>true</blocked>
    </mirror> -->

2、添加配置:将mirror标签替换为以下标签

    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>

5、配置Maven工程的基础jdk版本

    <!-- 配置Maven的jdk版本 -->
<profile>     
    <id>jdk-8</id>   
    <activation>        
          <activeByDefault>true</activeByDefault>    
          <jdk>8</jdk>      
     </activation>  
     <properties>  
          <maven.compiler.source>8</maven.compiler.source> 
          <maven.compiler.target>8</maven.compiler.target> 
          <maven.compiler.compilerVersion>8</maven.compiler.compilerVersion>   
     </properties>
</profile>

第二节、配置环境变量

1、配置MAVEN_HOME

image-20230614225643507

2、配置PATH变量

image-20230614225901042

实验一:

1、Maven核心概念:坐标

1、向量说明

1、groupld:公司或组织的id

2、artifactld:一个项目或者是项目中的一个模块的id

3、version:版本号

4、这三个向量是Maven仓库中唯一定位jar包

2、三个向量的取值方式

1、groupld:公司或者组织域名的倒叙,通常也会加项目名

(1)例如:com.atguigu.maven

2、artifactld:模块的名称,将来作为Maven工程的工程名

3、version:没看的版本号

(1)SNAPSHOT:表示快版本,正在迭代,不稳定

(2) RELEASE:表示正式版本

(3)1.2.0:1是主版本,2是次版本,3是修订号

3、坐标和仓库jar包中的存储路径之间的对应关系

image-20230628212207713

2、实验操作

1、创建目录作为后面操作的工作空间

1、例如:D:\maven-workspace\mspaceVideo

2、提醒

3、三个目录

4、maven核心程序:中军大帐

5、maven本地仓库:军营

6、本地工作空间:战场

3、在工作空间目录下打开命令行窗口

1、例子

image-20230628213026232

4、使用命令生成Maven工程

1、运行命令:mvn archetype:generate命令

1、意思

image-20230628213258563

2、输入命令

1、会下载很多相关文件啊

image-20230628215734607

2、创建成功

image-20230628215826493

3、文件目录

image-20230628215840698

5、调整

1、将Maven默认生成工程,修改其中pom.xml配置

<!-- 依赖信息配置-->
  <dependencies>
    <dependency>
    <!-- 通过坐标来依赖其他jar包-->
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <!-- 依赖范围-->
      <scope>test</scope>

    </dependency>
  </dependencies>

2、自动生成的App.java和AppTest.java可以删除

1、解读自动生成的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">
  <!--从Maven2开始,就固定是4.0.0 -->
    <!-- 代表当前pom.xml所采用的标签结构-->
  <modelVersion>4.0.0</modelVersion>
  <!--指定Maven坐标信息 -->
    <!-- 某个项目-->
  <groupId>com.atguigu.maven</groupId>
    <!-- 某个模块-->
  <artifactId>pro01-maven-java</artifactId>
    <!-- 当前模块版本-->
  <version>1.0-SNAPSHOT</version>
    <!-- 当前模块打包方式,默认jar包方式 java工程  可以为war 是web工程  -->
      <!-- pom:用来管理其他工程的工程,父工程,子工程-->
  <packaging>jar</packaging>

  <name>pro01-maven-java</name>
  <url>http://maven.apache.org</url>
  <!-- 定义属性值-->
  <properties>
    <!-- 构建过程中使用的字符集-->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
<!-- 依赖信息配置-->
  <dependencies>
    <dependency>
    <!-- 通过坐标来依赖其他jar包,相当于导入需求的jar包-->
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <!-- 依赖范围-->
      <scope>test</scope>

    </dependency>
  </dependencies>
</project>

3、Maven核心概念:POM

1、含义

1、POM:项目对象模型,和javaweb中的dom类似,将字符等文字转化为对象

2、模型化思想

1、POM将工程抽象为一个模型

3、对应的配置文件

1、体现在pom.xml 中,就是Maven的核心文件,教如何配置

4、Maven核心概念:约定的目录结构

1、各个目录的作用

image-20230628225247356

2、约定目录结构的意义

1、为了让构建过程尽可能自动化完成,所以用约定目录结构

3、约定大于配置

1、Maven没有采用配置的方式,而是基于约定

2、趋势:约定大于配置,配置大于编码

实验二、在Maven工程中编写代码

1、主体程序

image-20230628230611996

1、例子

package com.atguigu.maven;

public class Calculator{

    public int sum(int i,int j){
        return i+j;
    }

}

2、测试程序

image-20230628234552042

1、例子

public class CalculatorTest{
    @Test
    public void testSum(){
        //创建Calculator对象
        Calculator cal = new Calculator();

        //调用cal对象的方法,获取到程序运行实际的结果
        int actualResult = cal.sum(3,5);
        //声明一个变量,表示程序运行期待的结果
        int expRes = 8;

        //判断是否一致
        assertEquals(expRes,actualResult);

    }

}

实验三、执行Maven的构建命令

1、要求

1、构建Maven中的构建操作相关命令,必须进入pom.xml所在的目录。如果没有在pom.xml所在的目录运行Maven的构建命令,会出现以下错误

2、

image-20230628235617854

2、清理操作

1、mvn clean

2、效果:删除target目录

3、编译操作

1、主程序编译:mvn compile

2、测试程序编译:mvn test-compile

3、主体程序编译结果存放的目录:target/classes

4、测试程序编译结果存放的目录:target/test-classes

4、测试操作

1、编译失败改!!!

5、打包命令

1、mvn package

2、java文件打jar包

6、安装操作

1、mvn install

1、安装的效果:将本地构建的jar包存入到Maven本地仓库,这个jar包在Maven的路径根据坐标生成

实验四:生成web工程

1、内容

image-20230712233145561

2、操作

1、不能嵌套,一个java工程里创建一个web工程

2、执行一下命令

mvn archetype:generate  -DarchetypeGroupId=org.apache.maven.archetypes  -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.4

3、生成的pom.xml

1、确定打包的方式是war包形成

<packaging>war</packaging>

4、生成的web工程的目录结构

1、内容

image-20230712234032337

5、创建Servlet

1、在main目录下创建java目录

1、需要自己补充(在cmd中需要自己补充)

2、在java目录下创建Servlet类所在的目录

image-20230712235457201

3、在包下创建Servlet类

1、内容

package.com.atguigu.maven;

import javax.servlet.http.HttpServlet;
import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.http.HttpServletResponse;
import  javax.servlet.ServletException;
import  java.io.IOException;

public class HelloServlet extends HttpServlet{
    protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
        response.getWrite().write("Hello maven web");
    }
}

4、在文本.xml文件中注册servlet

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
    <servlet-name>helloServlet</servlet-name>
    <servlet-class>com.atguigu.maven.HelloServlet</servlet-class>

  </servlet>
  <servlet-mapping>
    <servlet-name>helloServlet</servlet-name>
    <url-pattern>/helloServlet</url-pattern>

  </servlet-mapping>
</web-app>

6、在index.jsp页面编写超链接

<html>
<body>
<h2>Hello World!</h2>
<a href='helloServlet'>Access Servlet</a>
</body>
</html>

1、这里使用的相对路径

7、编译

1、直接编译mvn compile会出错,因为没有对应的依赖jar包

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇