IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Maven的相关 -> 正文阅读

[Java知识库]Maven的相关

Maven的下载

下载地址:
http://maven.apache.org/.

idea已经整合
选择Maven的地址
**如果c盘没有.m2目录 ,自己手动在cmd窗口中执行mvn命令:

mvn help:system

当我们无法执行该命令时,需要将Maven中的bin文件的安装目录配置到path的环境变量中。**

setting.xml的相关配置

本地仓库

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <!-- 本地仓库配置 -->
  <!-- 具体本地仓库位置也就是.m2文件夹中的repository的位置; -->
  <localRepository>Z:\000_m\.m2\repository</localRepository>
</settings>

镜像仓库的配置

如果仓库A可以提供仓库B存储的所有内容,那么就可以认为A是B的一个镜像。
例如:在国内直接连接中央仓库(https://mvnrepository.com/)下载依赖,由于一些特殊原因下载速度非常慢。
这时,我们可以使用阿里云提供的镜像http://maven.aliyun.com/nexus/content/groups/public/来替换中央仓库http://repol.maven.org/maven2/。修改maven的setting.xml文件,具体内容如下:

//需要在<mirrors></mirrors>中添加
      <mirror> 
                <!-- 指定镜像ID(可自己改名) -->
                <id>nexus-aliyun</id> 
                <!-- 匹配中央仓库(阿里云的仓库名称,不可以自己起名,必须这么写)-->
                <mirrorOf>central</mirrorOf>
                <!-- 指定镜像名称(可自己改名)  -->   
                <name>Nexus aliyun</name> 
                <!-- 指定镜像路径(镜像地址) -->
                <url>http://maven.aliyun.com/nexus/content/groups/public</url> 
        </mirror>

在这里插入图片描述

jdk的配置

当你的idea中又多个jdk时,我们需要在setting.xml中配置需要编译和运行的jdk

//也是需要在<profiles></profiles>中添加
	<profile>
        <!-- settings.xml中的id不能随便起的 -->
        <!-- 告诉maven我们用jdk1.8 -->
        <id>jdk-1.8</id>
        <!-- 开启JDK的使用 -->
        <activation>
            <activeByDefault>true</activeByDefault>
            <jdk>1.8</jdk>
        </activation>
            <properties>
                <!-- 配置编译器信息 -->
                <maven.compiler.source>1.8</maven.compiler.source>
                <maven.compiler.target>1.8</maven.compiler.target>
                <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
            </properties>
    </profile>

Maven项目结构

–MavenDemo 项目名
–.idea 项目的配置,自动生成的,无需关注。
–src
– main 实际开发内容
–java 写包和java代码,此文件默认只编译.java文件
–resource 所有配置文件。最终编译把配置文件放入到classpath中。
– test 测试时使用,自己写测试类或junit工具等
–java 储存测试用的类
pom.xml 整个maven项目所有配置内容。

pom.xml配置文件的编写

依赖

让工程依赖各种jar包

<dependencies>
            <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
            <dependency>
            //此jar包的坐标在maven中央仓库可复制
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.5.1</version>
<!--                <scope>import</scope> 相当于强制的指定了版本号-->
            </dependency>
        </dependencies>

这段配置代码之后,在工程中就导入了mabatis3.5.1版本

让子工程依赖父工程

先将父工程双击左侧的install打好jar包
然后在子工程中的pon.xml中添加父工程的坐标

//父工程的坐标
<groupId>org.example</groupId>
    <artifactId>MavenDemo</artifactId>
    <version>1.0-SNAPSHOT</version>

//子工程的配置代码
    <dependencies>
        <dependency>
<!--            导入父工程的jar包-->
            <groupId>org.example</groupId>
            <artifactId>MavenDemo</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

这样,子工程就会出现父工程的jar包以及父工程导入的jar包

子工程排除父工程的某些jar包的依赖

    <dependencies>
        <dependency>

<!--            导入父工程的jar包-->
            <groupId>org.example</groupId>
            <artifactId>MavenDemo</artifactId>
            <version>1.0-SNAPSHOT</version>

            <!--排除父工程的mybatis依赖-->
<!--            <exclusions>-->
<!--                <exclusion>-->
<!--                    <groupId>org.mybatis</groupId>-->
<!--                    <artifactId>mybatis</artifactId>-->
<!--                </exclusion>-->
<!--            </exclusions>-->
<!--            父工程在没有<scope>import</scope>,子工程可以自己定义jar包的版本-->
<!--            <version>3.5.1</version>-->
        </dependency>
    </dependencies>

依赖范围

依赖范围就决定了你依赖的坐标 在什么情况下有效,什么情况下无效:

?compile

这是默认范围。如果没有指定,就会使用该依赖范围。表示该依赖在编译和运行时都生效。

?provided

已提供依赖范围。使用此依赖范围的Maven依赖。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行项目的时候,由于容器已经提供,就不需要Maven重复地引入一遍(如:servlet-api)

?runtime

runtime范围表明编译时不需要生效,而只在运行时生效。典型的例子是JDBC驱动实现,项目主代码的编译只需要JDK提供的JDBC接口,只有在执行测试或者运行项目的时候才需要实现上述接口的具体JDBC驱动。

?system

系统范围与provided类似,不过你必须显式指定一个本地系统路径的JAR,此类依赖应该一直有效,Maven也不会去仓库中寻找它。但是,使用system范围依赖时必须通过systemPath元素显式地指定依赖文件的路径。

?test

test范围表明使用此依赖范围的依赖,只在编译测试代码和运行测试的时候需要,应用的正常运行不需要此类依赖。典型的例子就是JUnit,它只有在编译测试代码及运行测试的时候才需要。Junit的jar包就在测试阶段用就行了,你导出项目的时候没有必要把junit的东西到处去了就,所在在junit坐标下加入scope-test

?Import

import范围只适用于pom文件中的部分。表明指定的POM必须使用部分的依赖。
注意:import只能用在dependencyManagement的scope里。

继承

如果A工程继承B工程,则代表A工程默认依赖B工程依赖的所有资源,且可以应用B工程中定义的所有资源信息。

被继承的工程(B工程)只能是POM工程(逻辑工程,不要放任何代码)。

注意:在父项目中放在<dependencyManagement>中的内容时不被子项目继承,不可以直接使用

放在<dependencyManagement>中的内容主要目的是进行版本管理。里面的内容在子项目中依赖时坐标只需要填写

<group id>和<artifact id>即可。(注意:如果子项目不希望使用父项目的版本,可以明确配置version)。

聚合

当我们开发的工程拥有2个以上模块的时候,每个模块都是一个独立的功能集合。比如某大学系统中拥有搜索平台,学习平台,考试平台等。开发的时候每个平台都可以独立编译,测试,运行。这个时候我们就需要一个聚合工程。

在创建聚合工程的过程中,总的工程必须是一个POM工程(Maven Project)(聚合项目必须是一个pom类型的项目,jar项目war项目是没有办法做聚合工程的),各子模块可以是任意类型模块(Maven Module)。

聚合包含了继承的特性。

聚合时多个项目的本质还是一个项目。这些项目被一个大的父项目包含。且这时父项目类型为pom类型。同时在父项目的pom.xml中出现表示包含的所有子模块。

总项目:一般总项目:POM项目

在这里插入图片描述
总项目里的具体的模块:

在这里插入图片描述

编译器的插件

指定jdk版本

<!-- 配置maven的编译插件 --> 
<build>
    <plugins>
    <!--JDK编译插件 -->
          <plugin>
        <!--插件坐标 -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.2</version>
         <!-- -->
        <configuration>
          <!-- 源代码使用JDK版本-->
          <source>1.7</source>
           <!-- 源代码编译为class文件的版本,要保持跟上面版本一致-->
          <target>1.7</target>
          <encoding>UTF-8</encoding>
        </configuration>
      </plugin>
    </plugins>
  </build>

配置文件的打包

<build>
   <resources>
     <resource>
        <directory>src/main/java</directory>
             <includes>
                 <include>**/*.xml</include>
             </includes>
      </resource>
      <resource>
             <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.xml</include>
                        <include>**/*.properties</include>
                    </includes>
        </resource>
     </resources>
 </build>

Tomcat的配置

新建一个基于Maven的webapp项目:
在这里插入图片描述
建好之后,可以手动按照Maven项目的结构创建缺的部分:
在这里插入图片描述
然后在pom.xml配置文件中配置Tomcat

<build>
    <plugins>
      <!-- 配置Tomcat插件 -->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
     <!-- 配置Tomcat监听端口 -->
          <port>8080</port>
     <!-- 配置项目的访问路径(Application Context) -->
          <path>/</path>
        </configuration>
      </plugin>
    </plugins>
  </build>

双击tomcat:run命令,启动Tomcat:
在这里插入图片描述
-----------------------------------------------------------------------------------------------------------

感谢您能看到这,谢谢。

不是所有的问题都有答案,也不是所有的答案都有对错。
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-31 23:49:43  更:2022-03-31 23:50:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:42:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码