学习日志day47(2021-09-13)(1、Maven 2、通过IDEA创建maven项目)

学习内容:学习Maven(Day47)

1、Maven
2、通过IDEA创建maven项目


1、Maven

(1)Apache软件基金会提供的项目自动化构建和项目管理软件。基于项目对象模型(缩写:POM)概念,Maven利用 一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
官方网站:http://maven.apache.org/

(2)下载并配置maven
1.下载地址:http://maven.apache.org/download.cgi

2.配置环境变量
MAVEN_HOME = maven根路径
PATH = %MAVEN_HOME%/bin

3.执行maven命令进行验证
mvn -v 显示maven版本信息

(3)maven工程结构

myapp (项目名称)
|-- pom.xml (配置文件)
-- src|
	|-- main  
	|	-- java
	|		-- com.mycompany.app
	|			-- App.java 
	|-- test
		-- java
			-- com.mycompany.app
				-- AppTest.java

(4)maven的配置文件pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<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">
	<!--采用schema验证,此配置文件中的标签必须符合验证-->

<!--groupId + artifactId + version = 坐标-->
<modelVersion>4.0.0</modelVersion> 
<groupId>com.mycompany.app</groupId> <!--公司项目的名称-->
<artifactId>myapp</artifactId> <!--模块名称-->
<version>0.0.1-SNAPSHOT</version> <!--版本号-->

<!--配置属性-->
<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <maven.compiler.source>10</maven.compiler.source> <!--安装的jdk版本-->
    <maven.compiler.target>10</maven.compiler.target> 
</properties> 

</project>

(5)maven的dos指令
1.maven项目编译命令:mvn compile
首次编译会下载maven需要的组件,编译完成之后在项目中生成一个target目录,编译好的class文件会存入这里。

2.执行单元测试:mvn test
测试之前需要在pom.xml添加对junit的依赖(下载jar包)

<!--根据坐标在中央仓库http://mvnrepository.com/中查找jar包-->
<dependencies> 
    <dependency> 
        <groupId>junit</groupId> 
        <artifactId>junit</artifactId> 
        <version>3.8.1</version> 
    </dependency> 
</dependencies>

该指令测试的是Test目录下的Test.java。Test.java中的方法可以加上@Test注解来运行,不写main方法。

3.清除target:mvn clean
清除编译好的class文件。

4.打包:mvn package
将maven项目打成jar包放入target目录下,供别人使用。

5.发布到本地仓库中:mvn install
将maven项目打包后放入c:/用户/.m2/reporitory/com/mycompany/app/myapp/0.0.1-SNAPSHOT下,这是默认本地仓库地址。
下次再使用这个jar包可以在pom.xml添加依赖

<!--根据坐标在本地仓库中查找jar包-->
<dependencies> 
    <dependency> 
        <groupId>com.mycompany.app.myapp</groupId> 
        <artifactId>myapp</artifactId> 
        <version>0.0.1-SNAPSHOT</version> 
    </dependency> 
</dependencies>

6.使用Archetype快速创建项目:mvn archetype:generate
在输出的交互式命令中输入坐标即可创建;
mvn archetype:generate -DgroupId=com.xixingit.pms -DartifactId=myapp2 -Dversion=1.0.0- SNAPSHOT

(6)修改本地仓库位置
默认本地仓库位置在操作系统的~/.m2文件夹中,修改方式如下:
1.取消maven/conf/settings.xml配置文件中的注释的该行代码: <localRepository>/path/to/local/repo</localRepository>
2.将其中的路径修改为自己希望的路径
<localRepository>J:/maven/repo</localRepository>

(7)maven查找依赖的顺序
1.从本地仓库中查找所需要的依赖
2.从私有仓库中查找所需要的依赖
3.从中央仓库(http://repo.maven.apache.org/)中查找所需要的依赖

私有仓库(私服):公司一般会有自己的私服存放需要用到的jar包。
修改单独项目的私服地址:

<repositories> 
    <repository> 
        <id>local</id> 
        <name>nexus_server</name> 
        <url>http://192.168.1.100:8088/nexus/content/groups/public/</url> 
    </repository> 
</repositories>

修改全局私服地址: .m2/settings.xml中:

<mirror>
    <id>mirrorId</id> 
    <mirrorOf>*</mirrorOf> 
    <name>Human Readable Name for this Mirror.</name> 
    <url>http://xxxxx</url> 
</mirror> 

(8)<scope>标签,一般加在依赖坐标的后面,代表依赖的使用范围,有四个值,默认值是compile:
• compile——编译(默认值,在编译、打包时使用)
• provided——编译和测试时使用的依赖,打包时不加入,例如servlet-api.jar
• runtime——运行时依赖,编译时不依赖,例如mysql.jar
• test——只有测试时依赖,编译和打包时不使用,例如junit.jar

(9)依赖传递和冲突
在添加依赖的时候,添加的依赖可能会依赖另一个jar包,这时会自动把依赖的依赖也添加上,这就是依赖的传递。但是有时依赖的传递会出现冲突,比如两个不同的依赖都依赖同一个jar包。
• 依赖级别相同时,在dependency前面的会使用
• 依赖级别不相同时,依赖路径短的会使用
• 依赖传递只会传递compile级别的包

这时可以把冲突的依赖排除掉。

<dependency> 
    <groupId>org.apache.struts</groupId> 
    <artifactId>struts2-core</artifactId> 
    <version>2.2.31</version> 
    <exclusions> <!--派出冲突的依赖-->
    
        <exclusion> 
            <groupId></groupId> 
            <artifactId></artifactId> 
        </exclusion> 
        
        <exclusion> 
            <groupId></groupId> 
            <artifactId></artifactId> 
        </exclusion> 
        
    </exclusions> 
</dependency> 

(10)其他配置
<properties>中可以配置各种依赖的版本号,坐标中需要写版本号时,可以直接用${ }来应用,这方便了后期对版本号的修改。

<properties> 
    <junit.version>4.12</junit.version> 
</properties> 
<dependencies> 
    <dependency> 
        <groupId>junit</groupId> 
        <artifactId>junit</artifactId> 
        <version>${junit.version}</version> 
        <scope>test</scope> 
    </dependency>
</dependencies> 

2、通过IDEA创建maven项目

(1)使用 IDEA 2021版创建Maven项目时发现没有模板,尝试在设置中配置MavenMaven设置和添加插件都不行,但是不选择模板创建一个Maven项目后再创建Maven时就出现了所有Maven骨架。

配置:-DarchetypeCatalog=internal,可以使idea创建maven项目时从本地加载骨架。
在这里插入图片描述

(2)创建Maven项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)可以配置tomcat来运行Maven项目,也可以用Maven集成tomcat插件来运行
Maven集成tomcat插件:

<packaging>war</packaging>
<build>  
<plugins>
   <plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat7-maven-plugin</artifactId>
      <configuration>
         <!-- 指定端口 -->
         <port>8080</port>
         <!-- 请求路径 -->
         <path>/myMaven</path>
      </configuration>
   </plugin>
</plugins>  
 </build>

点击Maven右上角的"m"标志,输入mvn tomcat7:run,回车,这样就启动了Maven集成的tomcat。
在这里插入图片描述

使用Maven集成的tomcat进行Debug
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值