首页 > 编程语言 >JavaWeb学习5:Maven

JavaWeb学习5:Maven

时间:2022-10-15 09:22:36浏览次数:73  
标签:学习 JavaWeb plugin 配置 jar IDEA Maven maven

为什么要学习这个技术?

  1. 在javaweb开发中,需要使用大量的jar包,这种jar包需要手动的导入
  2. 如何让一个东西自动导入和配置jar包
  3. 所以Maven诞生了

maven就是一个架构管理工具

1、Maven项目架构管理工具

Maven的核心思想:约定大于配置,有约束,不要去违反。
Maven会规定好要如何去编写Java代码,必须按照这个规范来。

2、下载安装Maven

https://maven.apache.org/

3、配置环境变量

  • M2_HOME :maven下bin目录
  • MAVEN_HOME:maven目录
  • Path:%MAVEN_HOME%\bin

4、阿里云镜像

镜像:mirrors
作用:加速我们的下载
国内建议使用阿里云的镜像

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
    <name>Nexus aliyun</name>
    <url>https://maven.aliyun.com/nexus/content/groups/public </url>
</mirror>

5、本地仓库

建立一个在本地的仓库

    <localRepository>D:\wordspace\ljw\apache-maven-3.8.6\maven-repo</localRepository>

6、在IDEA中使用Maven

  1. 启动IDEA

  2. 创建MavenWeb项目

这里用户配置忘记改了,记得改!!!!这里用户配置忘记改了,记得改!!!!

3.8.6的版本maven用不了▼_▼
重新下了3.6.3


  1. 等待导入成功


  1. 观察maven仓库里多了什么东西
  2. IDEA中的MAVEN设置
    IDEA项目创建成功后,要看一眼Maven的配置
    image
    没有要打钩的意思
    image

6.到这里,Maven在IDEA中的配置和使用就完成了。
image

7、创建一个普通的Maven项目

不选择模板。
image
image
image

8、在IDEA中标记文件夹功能

image
image
image

9、在IDEA中配置Tomcat

image
image
image
image

解决警告问题

为什么会有这个问题:访问一个网站,需要指定一个文件夹名字
image
虚拟路径映射
image
image
image
这里访问到的Hello World! 就是默认的index.jsp中的内容
image

10、pom文件

pom.xml是Maven的核心配置文件
image

<?xml version="1.0" encoding="UTF-8"?>

<!-- Maven版本和头文件 -->
<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>

<!-- 这个是刚才配置的GAV -->
  <groupId>org.example</groupId>
  <artifactId>javaweb-1</artifactId>
  <version>1.0-SNAPSHOT</version>
<!-- Package:项目的打包方式 -->
<!--
jar:java应用
war:javaweb应用
 -->
  <packaging>war</packaging>

<!-- 名称,可以删 -->
<!--  <name>javaweb-1 Maven Webapp</name>-->
<!--  &lt;!&ndash; FIXME change it to the project's website &ndash;&gt;-->
<!--  <url>http://www.example.com</url>-->

<!-- 配置 -->
  <properties>
<!--  项目的默认构建编码  -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--  编译版本  -->
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

<!-- 项目依赖 -->
  <dependencies>
<!--  具体依赖的jar包配置文件  -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
<!--      <scope>test</scope>-->
    </dependency>
  </dependencies>

<!-- 项目构建用的东西-->
  <build>
    <finalName>javaweb-1</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

Maven的高级之处在于,他会帮你导入这个jar包所依赖的其他jar包
Maven由于约定大于配置,所以可能会遇到所写的配置文件无法被导出或者生效。
解决方法:

<!-- 在build中配置resources防止资源到处失败 -->
<build>
	<resources>
		<resource>
			<directory>src/main/resources</directory>
			<includes>
				<include>**/*.properties</include>
				<include>**/*.xml</include>
			</includes>
			<!--不去过滤-->
			<filtering>false</filtering>
		</resource>
		<resource>
			<directory>src/main/java</directory>
			<includes>
				<include>**/*.properties</include>
				<include>**/*.xml</include>
			</includes>
			<filtering>false</filtering>
		</resource>
	</resources>
</build>

12、IDEA操作

目录树

Maven中jar包的联系关联图
image

标签:学习,JavaWeb,plugin,配置,jar,IDEA,Maven,maven
From: https://www.cnblogs.com/lin148/p/16793578.html

相关文章

  • JavaWeb学习6:Servlet
    1、什么是Servletsun公司用于开发动态web的一种技术sun公司在这里API中提供了一个接口,叫做Servlet,如果想开发一个Servlet程序,只需要完成两个步骤:编写一个类,实现Servle......
  • RE:从零开始的数论相关学习
    开坑。1-位运算我们知道,C++中的位运算有:&、|、^、~、>>、<<。应用:1-1快速幂:intqpow(inta,intb,intp){intvis=a;intsum=1;while(b){......
  • 《Unix/Linux系统编程》学习笔记7
    第四章并发编程一、知识点归纳(一)并行计算导论1.顺序算法与并行算法顺序算法并行算法begin  step_1  step_2  ……  step_nend//nextstepc......
  • 2022-2023-1 20221301 《计算机基础与程序设计》第七周学习总结
    2022-2023-120221301《计算机基础与程序设计》第六周学习总结作业信息这个作业属于哪个课程<班级的链接>https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP......
  • 2022-10-14学习内容
    1.案例-计算器-界面编码1.1activity_calculator.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/andro......
  • maven基础了解
    软件工程:maven自动化构建工具为了能够实现软件的流水线式生产,在设计和构建软件时能够有一种规范和工程化的方法,人们便提出了软件工程概念。Maven是目前最流行的自动化构......
  • 2022-2023-1 20221322《计算机基础与程序设计》第七周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(2022-2023-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2022-2023-1计算机基础与程序设计第七周作业......
  • WPF基于Prsim框架的学习
    Prism框架代码:前后端分离,依赖注入IOC,不是基础应用实战数据库:服务器数据SqlSever、本地缓存Sqlite数据库的添加:去程序包控制台先使用字符串add—migration—表名然后upd......
  • Chap4 循环结构 学习总结 第五小组
    1、为什么需要循环?:在c语言中需要重复执行某些操作时,需要用到循环结构2、循环的三个语句:for循环、while循环、do-while循环。下列是while循环和for循环的流程图3、......
  • 磁盘的学习笔记
    1.什么是磁盘(disk)磁盘是指利用磁记录技术存储数据的存储器。2.磁盘的作用和分类磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。......