Maven目录介绍
配置环境变量
配置成功:
并且修改以下内容(修改本地仓库repository的路径):
IDEA创建Maven工程
IDEA指定本地Maven
Local repository很关键,其中有很多包c3p0,log4j等等,不设为本地,则会重新下载,不方便。
创建java工程 -DarchetypeCatalog=local
创建javaSE项目
下一步:
一直下一步:
其中
创建JavaEE项目
下一步:
下一步:
创建好的javaweb工程如下:
所以,要手动创建一个java目录用于编写java代码:
同样测试代码目录test也需要java目录:
还要将java目录添加为Source Root:
全部设置
web.xml中的配置
发现无法新建servlet
还需要在edit configuration中部署到tomcat。
Maven的常用命令
package命令(打包后的jar包(se)用做其他程序使用)
导入依赖
导入依赖坐标,无需手动导入jar包就可以引入jar。在pom.xml中使用<dependency>标签引入依赖。
在Maven网站中搜索c3p0,如果使用的是0.9.1.2版本,选择,出现以下内容,放入pom.xml中。
放入pom.xml
依赖范围
-
compile 编译、测试、运行,A在编译时依赖B,并且在测试和运行时也依赖
例如:strus-core、spring-beans。打到war包或jar包
-
provided 编译、和测试有效,A在编译和测试时需要B
例如:servlet-api就是编译和测试有用,在运行时不用(tomcat容器已提供)
不会打到war
-
runtime:测试、运行有效
例如:jdbc驱动包 (),在开发代码中针对java的jdbc接口开发,编译不用
在运行和测试时需要通过jdbc驱动包(mysql驱动)连接数据库,需要的
会打到war
-
test:只是测试有效,只在单元测试类中用
例如:junit
不会打到war
-
按照依赖强度,由强到弱来排序:(理解)
compile> provided> runtime> test
Maven案例:使用Maven搭建Servlet+JSP+jdbcTemplate
需求分析
完成添加客户信息的操作
创建数据表
导入所需要的依赖(坐标)
web层:
dao层与service层
打包以上内容(JavaSE程序可以打包成Jar包,war包是JavaWeb程序打的包,以下得到的是war包)
部署
自定义骨架
1.自定义骨架依赖
<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
</dependency>
<!-- c3p0连接池-->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!-- dbutils-->
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.6</version>
</dependency>
<!-- beanutils依赖日志包-->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<!-- beanutils -->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.0</version>
</dependency>
<!-- Servlet-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- json-lib -->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<!-- redis 数据库 jar包-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.0</version>
</dependency>
<!--redis数据库 连接池 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.3</version>
</dependency>
2.自定义骨架三层结构
3.使用自定义的骨架
将骨架插件放入pom.xml
<plugin>
<artifactId>maven-archetype-plugin</artifactId>
<version>3.0.0</version>
</plugin>
- archetype:create-from-project 创建骨架来自工程
- install 安装到本地仓库
- archetype:crawl 抓取本地仓库骨架
其中只有install在Lifecycle中。
第一步:
首先需要编译compile
第二步:
不要忘记删除iml
已经安装到本地
第三步:
新建
添加结束:
点击next,创建完模块,和myarchetypewebapp中内容一样。
新项目中使用之前自定义的骨架