黑马程序员技术交流社区

标题: 【成都校区】IDEA中集成Maven的配置 [打印本页]

作者: 哈哈大圣    时间: 2019-1-16 12:21
标题: 【成都校区】IDEA中集成Maven的配置
02.IDEA中集成Maven的配置同步滚动:[color=rgba(0, 0, 0, 0.65)]
一、IDEA中使用maven插件1).File->settings->Build,Exe...->Build Tools->Maven下
  • Maven home directory: 指定maven本地安装的路径
  • User settings file: 安装路径文件夹下的/conf/settings.xml文件
  • Local repository: 本地仓库,自动生成,idea会读取安装的maven配置文件自动识别!
2).File->settings->Build,Exe...->Build Tools->Maven->Runner下
  • VM Options: -DarchetypeCatalog=internal -Dfile.encoding=GBK
    • 解决非联网下使用本地仓库和解决控制台中文乱码问题
    • 指定从本地的骨架插件中创建工程项目,如果不配置会到网上去下载

如果GBK不行,换成gb3212,或者其他试试。
二、使用idea创建maven工程1.使用骨架创建maven的Java工程
  • 创建工程的步骤
    • 新建一个空的工程项目(或者已有的),然后File->New->Module
    • Maven
    • 点选右边的Create from archetype: 第一次需要下载插件
    • 选择 org.apache.maven.archetypes:maven-archetype-quickstart
    • next
    • 指定坐标
      • GroupId: 公司/组织的名称
      • ArtifactId: 当前的项目名称
    • next
    • next
      • Project name: 项目名称
      • Project location: 项目的位置
    • finish
  • 创建的工程结构并不完整,需要手动建文件夹
    • /项目/src/main/ 创建 resources 文件夹,右击,选择【Mark Directory as】->【Resources Root】
    • /项目/src/test/ 创建 resources 文件夹,右击,选择【Mark Directory as】->【Test Resources Root】

2.不使用骨架创建maven的Java工程
创建maven的java工程,推荐使用【不使用骨架的方式】创建
  • 步骤
    • 新建一个空项目(工作空间),然后File->New->Module
    • Maven
    • 不要勾选Create from archetype
    • next
    • 填写坐标
    • next
    • Project name/Project location
    • Finish

3.使用骨架创建maven的web工程【重点】
  • 步骤:
    • 建立的空项目(工作空间)下新建Module
    • Maven
    • 点击Create from archetype
    • 选择org.apache.maven.archetypes:maven.archetype-webapp
    • Next
    • 添加项目坐标
      • GroupId: 公司/阻止名
      • ArtifactId: 工程项目
    • Next
    • Next
    • Project name/Project location
    • Finish
    • idea右下角提示框选择 Enable Auto-Import
  • 补充步骤
    • 右击main,新建文件夹java
    • 右击java文件夹,选择Mark Directory as -> Sources Root

三、idea中maven_web工程配置
  • idea骚造作介绍:(了解,或者忽略)
File->Project Structure->Modules->右下方Web Resource Directories-> +/- 路径及可以在指定文件夹下右键新建jsp文件了;idea明确知道每个文件夹该放什么东西,非常智能,建议不要改!
1. pom.cml基本配置
pom.xml是Maven项目的核心配置文件,位于每个工程的跟目录,基本配置如下:
<project ...> -- 文件的根节点    <modelVersion> -- pox.xml使用的对象模型版本    <groupId> --项目名称,一般写项目的域名    <artifactId> -- 模块名称,子项目名或模块名称    <version> -- 产品的版本号    <packaging> -- 打包类型jar(纯java工程,默认)/war(JavaWeb工程)/pom(Maven工程)等    <name> -- 项目的显示名,常用于Maven生成的文档    <description> -- 项目描述,常用于Maven生成的文档    <dependencies> -- 项目依赖构件配置,配置项目依赖构件的坐标    <build> -- 项目构建配置,配置编译、运行插件等2.maven工程中配置依赖jar包【定义坐标】1. 坐标格式
  • packaging标签介绍
    • jar: 打包成jar
    • war: 打包成war
    • pom: 用于maven工程的继承,通常父工程设置为pom

<dependency>  <groupId>?</groupId> -- 项目名称  <artifactId>?</artifactId> -- 模块名称  <version>?</version> -- 版本信息  <packaging>jar/war/pom</packaging> -- 打包类型</dependency>2. IDEA智能配置
  • 配置目录
    • 将光标放在需要被配置的代码位置
    • 按住alt + enter
    • 选择【Add Maven Dependency】,idea会自动配置pom.xml配置文件
    • 按住alt + enter,选择import导包

3. 手动配置
在项目根路径下的【pom.xml】配置文件的根标签<project>下的<dependencies>标签中中进行配置依赖jar包坐标
  • 方式在dependency/artifactId标签中写servlet根据提示,狂按enter即将所有坐标补齐
<dependencies>...    <dependency>      <groupId>javax.servlet</groupId>      <artifactId>servlet-api</artifactId>      <version>2.5</version>    </dependency>    <dependency>          <groupId>javax.servlet</groupId>          <artifactId>jsp-api</artifactId>          <version>2.0</version>    </dependency>...</dependencies>4. 如果本地仓库没有这些jar包,需要到中央仓库或者私服去找
百度 maven中央仓库, 搜索需要的jar包名称选择版本,点点点,找到坐标描述,将其复制到pom.xml中的dependencies/中即可
3.idea中启动maven项目的方式
idea 右边边框中有一个MavenProjects按钮,点击,如果有多个项目,选择需要启动的项目。
1. Lifecycle生命周期,双击对应的命令即可执行!命令与插件是对应的2. MavenProjects上方的菜单栏图标有个m字样的,单击即可输入其他命令,比如启动
  • tomcat:run: 启动项目,使用默认的tomcat6版本。
  • tomcat7:run: 使用tomcat7版本的插件启动项目。
3. maven工程servlet中解决jar包冲突
maven中集成了tomcat插件,已经存在jsp-api.jar、servlet-api.jar这两个包,但是在项目编写的时候找到是仓库的包进行编译的,引入包之后发生了包的冲突,这时可以在pom.xml中配置一个作用域【<scope>provided</scope>】
<dependency>  <groupId>javax.servlet</groupId>  <artifactId>servlet-api</artifactId>  <version>2.5</version>  <scope>provided</scope></dependency><dependency>  <groupId>javax.servlet</groupId>  <artifactId>jsp-api</artifactId>  <version>2.0</version>  <scope>provided</scope></dependency>
同时可以给test坐标添加上一个作用域(依赖范围)【<scope>test</scope>】,如下介绍依赖范围
4.依赖范围介绍
A依赖B,需要在A的pom.xml文件中添加B的坐标,添加坐标时需要指定依赖范围 <scope>?</scope>,依赖范围包括:
1. compile: 【打包
编译范围:指A在编译时依赖B,此范围为默认依赖范围。编译范围的依赖会用在编译、测试、运行,由于运行时需要,所以编译范围的依赖会被打包。
2. provided: (避免jar包冲突)
只有在当jdk或者一个容器已提供该依赖之后才使用,provided依赖在编译和测试时需要,在运行时不需要,比如:servlet api被tomcat容器提供
3. runtime: 【打包
在运行和测试系统的时候需要,但在编译的时候不需要。比如:jdbc的驱动包。由于运行时需要,所以runtime范围的依赖会被打包。
4. test:
在编译和运行时不需要,只有在测试编译和测试运行阶段可用,比如junit 。只在测试时起作用,不会被打包。
5. system: (不推荐使用)
与provided类似,但是必须显示的提供一个对于本地系统中jar文件的路径,需要指定systemPath磁盘路径,system不推荐使用




1.依赖范围举例总结编译范围jar包举例描述
compile默认引入的jar包默认,编译、测试、运行有效
providedservlet-api、jsp-api编译、测试有效,防止与tomcat下的jar包冲突
runtimejdbc驱动jar包测试、运行有效
testjunit测试优先
依赖范围由强到弱的顺序: compile > provided > runtime > test
四、Maven工程运行环境修改
如果代码逻辑没问题,无从下手,最好的解决方案就是问问度娘
@idea中使用骨架创建web项目启动遇到500:org.apache.jasper.JasperException: Unable to compile class for JSP;maven集成的tomcat插件默认使用的是Tomcat6版本,一般在开发中常用的jdk版本为1.8 Tomcat6与jdk8搭配会出现兼容问题,解决方案就是将项目的Tomcat的版本调高。
1. 使用maven的Tomcat7插件1. 在pom.xml文件中加上如下代码即可
  • 启动命令:tomcat7:run
<build>     <plugins>         <plugin>             <groupId>org.apache.tomcat.maven</groupId>             <artifactId>tomcat7-maven-plugin</artifactId>             <version>2.2</version>             <!-- 配置,可选 -->             <configuration>                <port>80</port>             </configuration>         </plugin>     </plugins></build>2. 如果记不住groupId,可以配置模板
【File】 -> 【Settings...】 -> 【搜索live】 -> 【右上方+】 -> 【Template Group】(推荐)/Live Template... -> 【起一个组名比如custom】 -> 【中间空白部分选中自建的组】 -> 【又点击右上方+】-> 【Live Template】 -> 【Abbreviation: tomcat7】 -> 【Template text:如下代码框】-> 【点击下方提示条Define】 -> 【选中XML】 -> 【OK】
<plugin>     <groupId>org.apache.tomcat.maven</groupId>     <artifactId>tomcat7-maven-plugin</artifactId>     <version>2.2</version>     <configuration>        <port>80</port>     </configuration></plugin>
在xml中的使用方式:输入tomcat7,根据提示回车,自动补全!
3. 配置jdk插件版本1. 在<build>标签内配置,配置方式与配置tomcat7一致<plugin>    <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-compiler-plugin</artifactId>    <configuration>        <target>1.8</target>        <source>1.8</source>        <encoding>UTF-8</encoding>    </configuration></plugin>2. 按照上面同样的步骤配置对应的groupId的模板,配置到custom组下!
...【名字取为 jdk1.8】->【Define】->【选中XML】->【OK】
4. 使用tomcat8插件请参考
https://blog.csdn.net/u011781521/article/details/75194071
四、Maven工程中MySQL的jar包配置
连接数据库四个要素:数据库驱动,连接数据库的地址,数据库用户名称,数据库密码
  • pom.xml中配置mysql的数据库驱动
<dependencies>...    <dependency>        <groupId>mysql</groupId>        <artifactId>mysql-connector-java</artifactId>        <version>5.1.6</version>        <scope>runtime</scope>    </dependency></dependencies>五、maven工程运行调试1. 端口占用处理
重启之前停掉之前开启的项目
2.配置项目独立的Maven启动配置/断点调试
  • 步骤
    • Run】 ->
    • Edit Configurations】 ->
    • 右上角+】 ->
    • Maven】->
    • Name:项目名; Command line: tomcat7:run...】->
    • OK

1.在idea右上角选择对应项目进行启动2.添加断点,然后在idea右上角选择debugrun进行启动







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2