文章目录
一、前言
现在基于java开发的项目越来越多,而我们在做JavaWeb项目时,不可避免的需要导入各种各样的jar包。如果每次建立一个项目到把相应的jar包拷贝到项目中会显得非常的繁琐。这时候,如何去管理我们的jar包就显得非常的重要。通过maven来管理存放jar包的仓库,会使得我们的开发效率大大提升。
二、下载maven并配置相应的环境
在使用Maven前,对Maven进行配置
1.下载并解压下面的压缩包到一个没有中文,空格的目录下
链接:https://pan.baidu.com/s/1b4QWQnxDpNdxbX6Tl3B5fg |
---|
提取码:0fgk |
然后在电脑随便哪个地方建立一个文件夹,名字命名为:repository
,我这里是在c盘目录下建立的该文件。所以文件目录为:C:\repository
打开该文件的配置目录conf,在settings.xml文件中配置如下几个元素:
(1)添加本地仓库
指定localRepository,(maven用来保存jar文件的目录),即本地仓库的路径。
(2)添加阿里云的镜像,当你所填写的(G, A, V)坐标的jar包在本地仓库找不到时,他会根据坐标自动到这个地址下载,最终文件就下载到你的本地仓库了。
<mirror>
<id>nexus-aliyun</id>
<name>Nexus aliyun</name>
<mirrorOf>central</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
(3)配置全局JDK,即告诉maven用什么jdk去编译。
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
如果不愿意配置,可以直接用我的setting.xml覆盖掉你的setting.xml文件:
链接:https://pan.baidu.com/s/13z40iGa1qHQPajGbsB1v2A |
---|
提取码:gjhy |
2. 在IEDA中配置跟Maven的关联(只需要配置一次)
(1)File–>Settings
在Settings窗口中配置maven解压后的文件夹路径,以及settings.xml路径
(2)同样上面,还要在Other-Settings下的Default Settings里也配一下,跟上面一样。
(3)开启IDEA的快速自动编译功能(Settings和Default Settings都要配)
三、搭建Maven的web工程
1. File-New-创建Project,选择Maven,点击 Next
(1)第1次使用IDEA 创建项目,会报NO SDK,需要把本地的JDK根路径关联进来
(2)再建立maven项目。
2. 给项目指定(g, a, v)含义如下:
对于maven项目来说,坐标(G,A,V)就代表了一个依赖,到时候别人想导入我们自己的jar包时,如果我们发布到网上,别人也能根据(G,A,V)下载我们的jar包。
3. Project建好后,目录结构如下:
4. 修改pom.xml文件
1个maven项目建好后,首先就要改写pom.xml,把它所依赖的所有jar都通过代码引入到项目中,通过G,A,V来引入外部jar包。如果不清楚一个依赖的G,A,V,可以去网上查查找网址:https://mvnrepository.com/,我们把GroupId或者artifactid的关键字输进去,就能查到了。
另一种方法:
也可以到仓库中查看(G, A, V)坐标,例如: E:\maven\repository\mysql\mysql-connector-java \5.1.20G:mysql 位于repository和A之间,可能有多级
A:mysql-connector-java –位于V的上一层,只有一级
V:5.1.20 –版本号,只有一级
以下文件配置都添加到 标签内:
(1)设置项目打包时,打包成war文件,默认是bar文件。
<packaging>war</packaging>
(2)添加jar包。本项目需要的4个依赖(jar),mysql、servlet、jstl、JdbcTemplate依赖。数据源对应的坐标如下:
<!-- 设置配置文件(G,A,V)坐标 -->
<dependencies>
<!-- mysql驱动依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
<!-- servlet相关的依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<!-- provided表示这个servlet的jar不参与到打包中,因为tomcat已经提供了servlet的jar包 -->
<scope>provided</scope>
</dependency>
<!-- 阿里巴巴的连接池(数据源)比如:JDBCUtile会用到 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.2</version>
</dependency>
<!-- JdbcTemplate依赖,为了避免用底层的jdbc连接数据库,简化代码 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.23.RELEASE</version>
</dependency>
<!-- jstl依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
注意:上面的添加jar包的代码中,添加servlet的jar包时多了<scope>provided</scope>
是为了在打成架包的时候,不将该jar包打进去。因为服务器上有servlet的jar包,不需要重复导入。
(3)添加插件。添加tomcat插件,方便我们在写程序的时候运行代码,而不需要打包到外部服务器上运行,增加开发效率。还需要添加java编译插件,我们编写的class需要用到编译插件。
<!-- 设置插件 -->
<build>
<plugins>
<!-- java编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- 项目访问路径 -->
<path>/cour</path>
<!-- 访问项目的端口号 -->
<port>80</port>
</configuration>
</plugin>
</plugins>
</build>
最终我的代码如下:
<?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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hushi</groupId>
<artifactId>couseSystem</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 项目 可以打成war包,默认是打包成jar包-->
<packaging>war</packaging>
<!--配置jar包-->
<dependencies>
<!-- mysql驱动依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
<!-- servlet相关的依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<!-- provided表示这个servlet的jar不参与到打包中,因为tomcat已经提供了servlet的jar包 -->
<scope>provided</scope>
</dependency>
<!-- 阿里巴巴的连接池(数据源) -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.2</version>
</dependency>
<!-- JdbcTemplate依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.23.RELEASE</version>
</dependency>
<!-- jstl依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<!--配置插件-->
<build>
<plugins>
<!-- java编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- 项目访问路径 -->
<path>/cour</path>
<!-- 访问项目的端口号 -->
<port>8081</port>
</configuration>
</plugin>
</plugins>
</build>
</project>
四、利用Maven的编译插件把项目打成war包
4. 对Maven工程执行package命令,把整个工程打成一个war包
(1)点击右上角的package
(2)把产生的war包拷贝到外部的tomcat服务器的webapps目录中
(3)在tomcat的lib目录下找到start.bat文件,点击他就启动tomcat服务器,war包会自动解压变成一个目录
启动tomcat服务器后,浏览器中输入http://localhost/项目名,这里我是http://localhost/cs/index.html
结果如下:
五、利用Maven插件运行web项目(重点)
1. 在pom.xml中添加插件。
mavn的tomcat插件,它能够运行war包,这里在之前添加插件的时候已经添加该代码了。
<!-- Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- 项目访问路径 -->
<path>/cour</path>
<!-- 访问项目的端口号 -->
<port>80</port>
</configuration>
</plugin>
2. 双击运行tomcat7插件的tomcat7:run
六、建立项目必须的文件
1. 建立文件
(1)在项目的main目录下建立webapp目录,再在webapp下建立WEB-INF目录。
(2)在webapp目录下编写我们的前端页面。这里我们建一个index.html文件。
(3)web项目中一定要有web.xml,web.xml是前端的配置文件。如何建立:https://www.cnblogs.com/Liang-Haishan216/p/9302141.html
最终结构如下图:
项目的虚拟目录是在Tomcat插件中指定的:
七、将外部的maven项目导入进来
八、将maven配置到电脑中(不是必须的,可以不配)
九、maven命令大全
1. 创建Maven的普通Java项目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=projectName
2. 创建Maven的Web项目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=webappName
-DarchetypeArtifactId=maven-archetype-webapp
3. 反向生成 maven 项目的骨架:
mvn archetype:generate
你是怎么创建你的maven项目的?是不是像这样:
mvn archetype:create -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.ryanote -Dartifact=common
如果你还再用的话,那你就out了,现代人都用mvn archetype:generate了,它将创建项目这件枯燥的事更加人性化,你再也不需要记那么多的archetypeArtifactId,你只需输入archetype:generate,剩下的就是做”选择题”了.
cmd步骤:
缩写写法:
mvn archetype:generate -DgroupId=otowa.user.dao -DartifactId=user-dao -Dversion=0.01-SNAPSHOT
4. 编译源代码:
mvn compile
5. 编译测试代码:
mvn test-compile
6. 运行测试:
mvn test
7. 产生site:
mvn site
8. 打包:
mvn package
9. 在本地Repository中安装jar:
mvn install
例:installing D:\xxx\xx.jar to D:\xx\xxxx
10. 清除产生的项目:
mvn clean
11. 生成eclipse项目:
mvn eclipse:eclipse
12. 生成idea项目:
mvn idea:idea
13. 组合使用goal命令,如只打包不测试:
mvn -Dtest package
14. 编译测试的内容:
mvn test-compile
15. 只打jar包:
mvn jar:jar
16. 只测试而不编译,也不测试编译:
mvn test -skipping compile -skipping test-compile
( -skipping 的灵活运用,当然也可以用于其他组合命令)
17. 清除eclipse的一些系统设置:
mvn eclipse:clean
18.查看当前项目已被解析的依赖:
mvn dependency:list
19.上传到私服:
mvn deploy
20. 强制检查更新,由于快照版本的更新策略(一天更新几次、隔段时间更新一次)存在,如果想强制更新就会用到此命令:
mvn clean install-U
21. 源码打包:
mvn source:jar
或
mvn source:jar-no-fork
mvn compile与mvn install、mvn deploy的区别
1. mvn compile,编译类文件
2. mvn install,包含mvn compile,mvn package,然后上传到本地仓库
3. mvn deploy,包含mvn install,然后,上传到私服
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/84705.html