一、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工程配置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文件中加上如下代码即可<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包配置连接数据库四个要素:数据库驱动,连接数据库的地址,数据库用户名称,数据库密码
<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进行启动