Maven核心知识与操作(Maven的安装配置及命令、坐标导入、依赖管理、分模块开发设计、聚合继承、私服、属性管理、多环境配置与应用)+Tomcat学习笔记

 一、Maven核心知识

1.1 分模块开发与设计

将ssm模块下的domain包单独成一个模块,坐标可以直接在domain模块的pom.xml中复制,直接导入ssm模块的pom.xml中,通过<dependency>标签:

  

思想:将一部分功能抽离出来,做成单独的模块。

现在遇到的问题是:仍旧无法编译运行,尽管在IDEA下能找到,但在仓库里找不到。

我们选择新独立出来的模块点击install进行加载即可:

1.2 依赖管理

依赖的传递性:

直接依赖:直接写的叫直接依赖;间接依赖:直接依赖中又用到的叫间接依赖。

依赖冲突:

在依赖中如果同一个坐标写了多次以最后配置的版本为准(后配置覆盖先配置的):

可选依赖:隐藏当前工程所依赖的资源,隐藏后对应资源将不具有依赖传递性,可以避免冲突问题——通过更改<optional>标签进行更改。

排除依赖:在当前引用的坐标中将它的依赖从你的依赖关系中去除掉(用了别人的模块,发现其中有些依赖不想要,排除掉)。

1.3 聚合与继承

聚合:将多个模块组织成一个整体,同时进行项目构建的过程

首先创建Maven模块,设置打包类型为pom,设置当前聚合工程所包含的子模块名称:

如下显示即为成功:

 

1.4 属性管理

在properties标签下定义一个变量,名字叫作spring.version:

<properties>
    <spring.version>5.2.10.RELEASE</spring.version>
</properties>

然后在<version>处填写${}里面写变量名字: 

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-test</artifactId>
  <version>${spring.version}</version>
  <scope>test</scope>
</dependency>

1. 资源文件引用属性:

2. 配置文件中引用属性:

3. 开启资源文件目录加载属性的过滤器

打war包是如果没有web.xml文件的解决方案:

1. 直接新建一个空的web.xml文件欺骗

2. 通过插件:

<build>
 <plugins>
     <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-war-plugin</artifactId>
         <version>3.2.3<version>
         <configuration>
             <failOnMissingWebXml>false</failOnMissingWebXml>
         </configuration>
     </plugin>
 </plugins>
</build>

1.5 多环境配置与应用

SNAPSHOT快照版本:项目开发过程中临时输出的版本,称为快照版本,快照版本会随着开发的进展不断更新。

RELEASE发布版本:项目开发到进入阶段里程碑后,向团队外部发布较为稳定的版本,这种版本所对应的构建文件是稳定的,即便进行功能的后续开发,也不会改变当前发布版本内容,这种版本称为发布版本。

发布版本:alpha版,beta版,纯数字版

多环境开发:<id>里写的是环境的名称代号,<properties>里写的是替换的属性,<activationByDefault>里填写true,表示启用当前环境。

<profiles>
  <!--开发环境-->
  <profile>
    <id>env_dep</id>
      <properties>
        <jdbc.url>jdbc:mysql:///db1</jdbc.url>
      </properties>
      <!--设置是否为默认启动环境-->
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
  </profile><!--生产环境-->
  <profile>
    <id>env_test</id>
      <properties>
        <jdbc.url>jdbc:mysql:///db1</jdbc.url>
      </properties>
  </profile>
</profiles>

跳过测试: 

需求:不希望测试,直接打包。

场景:有部分功能完成了想上线测试,但有一部分功能还没调通。

点击按键即可:

<skipTests>用于设定是否跳过测试,<exclude>里写要跳过测试的内容:

<build>
  <plugins>
    <plugin>
        <!--先导入插件-->
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.12.4</version>
        <configuration>
          <!--先设置不跳过测试-->
          <skipTests>false</skipTests>
          <!--排除掉不参与测试的内容-->
          <excludes>
            <exclude>**/BookServiceTest.java</exclude>
          </excludes>
        </configuration>
    </plugin>
  </plugins>
</build>

1.6 私服

1.私服的简介与安装

私服:是一台独立的服务器,用于解决团队内部的资源共享与资源同步问题。

按照如下方式打开,注意要将目录放在全英文目录下:

 

敲cmd指令:

输入如下代码:

nexus.exe /run nexus

出现下面信息是成功: 

 

私服里依靠仓库来存储东西,如果私服仓库里没有就从中央仓库里下载,第2个人访问就不需要再下载:

2. 私服仓库的分类

3. 本地仓库访问私服配置

配置与私服交互的相关信息:

 找到如下的代码复制,粘贴到外面进行修改,然后点击齿轮-Repositories-Create repository:

 

下面是配置访问私服的权限: 

<server>
	<id>itheima-release</id>
	<username>admin</username>
	<password>admin</password>
</server>
<server>
	<id>itheima-snapshot</id>
	<username>admin</username>
	<password>admin</password>
</server>

找到下面这行代码:

找到maven-pubic,点击,然后将左边个拖拉过去,表示管理了几个组:

<mirror>
	<id>maven-public</id>
	<mirrorOf>*</mirrorOf>
	<url>http://localhost:8081/repository/maven-public/</url>
</mirror>

4. 私服资源上传与下载 

记得要先让其它包继承管理包:

<parent>
    <groupId>org.itheima</groupId>
    <artifactId>maven_01_parents</artifactId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>../maven_01_parent/pom.xml</relativePath>
</parent>

在parents包(管理包)下的pom.xml中写入如下代码:

<distributionManagement>
  <repository>
    <id>itheima-release</id>
    <url>http://localhost:8081/repository/maven-release/</url>
  </repository>
  <snapshotRepository>
    <id>itheima-snapshot</id>
    <url>http://localhost:8081/repository/maven-snapshot/</url>
  </snapshotRepository>
</distributionManagement>

 deploy是打包上传到私服:

 

报错:

1. repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository 是因为没有让其它包继承管理类

2. Failed to deploy artifacts: Could not transfer artifact ***.itheima.domain:domain:jar:1.0-20230908.024442-1 from/to itheima-snapshot (http://localhost:8081/repository/maven-snapshots/): authentication failed for http://localhost:8081/repository/maven-snapshots/***/itheima/domain/domain/1.0-SNAPSHOT/domain-1.0-20230908.024442-1.jar, status: 401 Unauthorized 身份验证失败,在setting.xml中检查设置的登录账号密码,移动到识别目录下

下面是成功:

下面这样就是上传成功了:

 

如果将version改成RELEASE那么releases文件夹里会有内容,记得继承的也要改。

二、MAVEN配置相关

2.1 Maven的安装配置:

1、解压apache-maven-3.6.1.rar

解压下面的压缩包到当前的文件夹: 

2、配置环境变量MAVEN_HOME为安装路径的bin目录

复制文件夹目录,右键此电脑-属性-高级系统设置-环境变量 

点击新建:

输入MAVEN_HOME,然后把地址复制过来:

双击PATH

点击新建,然后输入下面文字:

在cmd中输入mvn -version,如果出现下面文字说明环境变量配置成功:

3、配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定目录

4、配置阿里云私服:修改conf/settings.xml中的<mirrors>标签,为其添加如下标签

<mirror>
    <id>alimaven</id>
    <name>aliyun maveb</name>
    <url>http://maven.aliyun.***/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

2.2 Maven的基本命令

***pile:编译        clean:清理        test:测试

package:打包        install:安装       deploy:上传

原本该文件夹为空:

在文件夹空白处按住shift+点击鼠标右键可以打开PowerShell:

输入mvn ***pile会进行编译,但如果maven库里缺少所需要的包,会预先进行下载:

原本空的文件夹里就下载好了包:

然后project下面也会出现target文件:

输入mvn clean,会删除target文件夹:

输入mvn package,会将java的项目打成一个jar包,会将外部项目打成war包:

输入mvn instal,把项目安装到本地仓库:

2.3 Maven生命周期和IDEA配置

生命周期:

IDEA配置:

 2.4 IDEA创建Maven项目+导入坐标及项目

这样子操作创建出来的就是带有src目录的文件:

导入项目:点击Project Structure,点击+然后选择Import Module,然后选择pom.xml文件

  

Maven坐标:

2.5 依赖管理

如果想让IDEA自动帮忙补全,只需要打出<然后再打其它的内容,点击IDEA自动补全的目标,剩下的就会自动补全。

如果依赖缺失,我们可以直接在网上搜索出相关的Maven依赖: 

 

或者直接点击右侧的Maven,然后点击刷新按钮:

选择下面的选项可以自动进行更新:

点击alt+insert,点击Add dependency,选择想要预装的包,然后点击Add即可:

 

二、Tomcat

2.1 基本概念

Tomcat是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范。Tomcat也被称为Web容器、Servlet容器。Servlet需要依赖于Tomcat运行。

Web服务器的作用:封装HTTP协议操作,简化开发。可将Web项目部署到服务器中,对外提供网上浏览服务。

JavaEE:全程Java Enterprise Edition,即Java企业版。指Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF

2.2 Tomcat的下载安装及启动

先进入到Tomcat的官网 

 选择Tomcat 8,然后拉到下面选择对应的操作系统即可

  

在这里直接解压安装包即可:

bin是binary即二进制文件的缩写。放了可执行文件。以.bat结尾是windows系统下可执行的批处理文件,startup.bat点击即可启动。

conf下面存放的是配置文件。lib目录下面放的是.jar包,包里放的是字节码文件。logs放的是日志文件。temp目录是临时目录,存放临时文件与数据。work目录会存放运行过程中产生的临时的文件数据。

webapps里存放的是项目的文件:

 

若想启动:点击startup.bat输入locolhost:8080即可进入到页面:

 

 若想关闭:在bin目录下找到shutdowm.bat即可关闭。也可以用ctrl+C关闭。

 2.3 Tomcat的配置和部署

更改窗口号:

 启动窗口一闪而过,是因为Java_Home没有正确配置。

Tomcat项目部署: 一般是将项目打成一个war包然后传输到Tomcat上,可以通过IDEA的插件来将项目打成war包,Tomcat会自动解压缩war文件。

 2.4 创建项目

通过web项目骨架创建项目,Archetype选择webapp:

删除掉pom.xml中多余的坐标:

创建的目录缺少java文件,右键main进行创建:

会自动提示所缺少的,直接点击即可创建:

如果缺少webapp目录:

 

如果想创建web.xml文件,点击“+”号。

2.5 打.war包

先要下载Maven Helper

右键项目-Run Maven-package

如果报出如下的错误:

在pom.xml中导入如下的依赖:

<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.0</version>
      </plugin>
    </plugins>
  </build>

 然后再运行就成功了,根据这个路径去找war包:

就可以成功找到了:

 2.6 部署项目方式1

配置Tomcat:

部署项目:

在webapp下添加一个aaa.html试验一下可以正常打开:

设置的路径就是首页:

 2.7项目部署方式2

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.0</version>
        </plugin>
    </plugins>
</build>

下面这样子就是访问成功了: 

转载请说明出处内容投诉
CSS教程_站长资源网 » Maven核心知识与操作(Maven的安装配置及命令、坐标导入、依赖管理、分模块开发设计、聚合继承、私服、属性管理、多环境配置与应用)+Tomcat学习笔记

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买