Maven入门
Maven介绍
- Maven是项目管理工具,对软件项目提供构建与依赖管理
- Maven是Apache下的Java开源项目
- Maven为Java项目提供了统一的管理方式,已成为业界标准
解决了的问题
- 工程的结构不统一
- 第三方jar包多的时候,不便于管理
- 工程打包的困难
Maven核心特性
- 项目设置遵循统一的规则,保证不同开发环境的兼容性
- 强大的依赖管理,项目依赖组件自动下载、自动更新
- 可扩展的插件机制,使用简单,功能丰富
Maven的坐标:
GroupId:机构或者团队的英文,采用"逆向域名"形式书写
ArtifactId:项目名称,说明其用途,例如:cms(内容管理系统),oa(办公自动化系统)
Version:版本号,一般采用“版本+单词”形式,例如:1.0.0.RELEASE
Maven项目标准结构
目录 | 用途 |
---|---|
${basedir} | 根目录,用于保存pom.xml |
${basedir}/src/main/java | Java源代码目录 |
${basedir}/src/main/resources | 资源目录,保存配置文件、静态图片等 |
${basedir}/src/test/java | 测试类的源代码 |
${basedir}/src/test/resources | 测试时需要使用的资源文件 |
${basedir}/target | 项目输出的目录,用于存储jar、war文件 |
${basedir}/target/classes | 字节码(.class)的编译输出目录 |
${basedir}/pom.xml | 项目(Project)对象(Object)模型(Model)文件 |
Maven的依赖管理
说明
- Maven利用dependency(依赖)自动下载、管理第三方Jar
- 在pom.xml文件中配置项目依赖的第三方组件
- maven自动将依赖从远程仓库下载至本地仓库,并在工程中引用
获取
apache:https://search.maven.org/
阿里云:https://maven.aliyun.com/mvn/search
本地仓库与中央仓库
使用代理:
<repositories>
<repository>
<!-- 创建私服的地址 -->
<id>aliyun</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
普通项目的创建与打包案例(实现中文与拼音的转化)
创建&使用:
-
新建一个Maven项目,默认的jdk是1.5,将jdk的版本调整为1.8
-
配置第三方组件,使得maven自动从远程仓库中下载第三方jar包到本地仓库
核心语句
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.1</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.1.1.RELEASE</version> </dependency> </dependencies>
-
创建简单的java文件
PinyinTestor.java
public class PinyinTestor { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str = scanner.nextLine(); String[] pinyin = PinyinHelper.toHanyuPinyinStringArray(str.charAt(0)); for(String py:pinyin) { System.out.println(py); } } }
-
运行main方法
打包
-
在pom.xml配置文件中,根目录下配置打包的信息,使用maven-assemble-plugin插件进行打包输出
<build> <!-- 配置插件 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <!-- 经典版本 --> <version>2.5.5</version> <!-- 用于说明打包过程中的一些细节 --> <configuration> <!-- 指定项目的入口类 --> <archive> <manifest> <mainClass>com.imooc.maven.PinyinTestor </mainClass> </manifest> </archive> <!-- 描述符引用 打包过程中所用到的参数 --> <descriptorRefs> <!-- all in one, 在打包时会将所有引用的jar包合并到jar文件中 --> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins> </build>
-
运行assembly插件,输出合并的jar文件
- 用命令行执行输出的jar包
Web项目的创建与打包案例
创建&使用
-
配置好tomcat,创建一个普通的Maven项目,默认的jdk是1.5,将jdk的版本调整为1.8
-
进入项目的配置信息,配置java的编译级别为jdk1.8
-
在src/main目录下创建一个文件夹,名为webapp
-
将maven工程变成标准的web项目,打开该工程的属性配置页面,选择
Project Facets,点击Convert to facted from…开启项目模块的面板,选择版本为3.1,并指定运行环境,不要直接点击apply and close,还没完 -
点击图中出现的Further configuration available…,设置content directory为src/main/webapp,勾选配置xml文件
-
再在右侧找到deployment assembly,添加maven的依赖,否则在maven加入的jar包会失效
-
在创建的webapp文件夹中出现MATE-INF和WEB-INF目录说明,已经成功将普通的maven工程变为标准的web工程
-
在webapp文件夹下创建一个index.jsp , 在里面写如this is a maven project!!!
-
将当前工程发布到tomcat下运行
-
在浏览器的url中输入http:localhost:8080/web-maven/, 在页面上显示this is a maven project!!!
打包
-
在pom.xml文件的根目录中编写配置war包的信息
<!-- packaging代表输出的格式,默认的是jar包 --> <packaging>war</packaging> <build> <!-- 输出的war包名 --> <finalName>web-maven</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> </plugin> </plugins> </build>
-
运行maven中的插件
-
点击run
-
将生成的war包放在tomcat的webapp目录下,运行tomcat bin目录下的startup.bat文件,在浏览器中输入http:localhost:8080/web-maven/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NWdf5Z8B-1603171498267)(G:\JAVA\Maven学习\assert\12.png)]
Maven常用命令
命令 | 用途 |
---|---|
mvn archetype:generate | 创建工程结构 |
mvn compile | 编译源代码 |
mvn test | 执行测试用例 |
mvn clean | 清除产生的项目 |
mvn package | 项目打包 |
mvn install | 安装至本地仓库 |