Maven入门
Maven的目录结构
src
-main
-java
-package
-test
-java
-package
-resources
groupId
的值就是项目的包名
artifactId
的值是模块名,建议使用项目名
version
表示版本
常用构建命令
mvn -v
查看maven版本compile
编译test
测试package
打包clean
删除target
,target
中存放的是项目结果编译的字节码文件和测试报告install
发布到本地仓库deploy
发布到远程仓库
创建目录的两种方式:
1. archetype:generate
按照提示进行选择
2. archetype:generate - DgroupId=组织名,公司网址的反写+项目名 -DartifactId=项目名-模块名 -Dversion=版本号 -Dpackage代码所存在的包名
安装Maven
安装之后,可以在preferences
中,搜索Maven
,在User Settings
中查看相关的本地仓库信息
pom.xml
文件解析
依赖范围
scope:表示依赖项目的一个作用范围。
- compile:默认值,编译测试运行都有效
- provided:在编译和测试时有效
- runtime:在测试和运行时有效
- test:只在测试时有效
- system:在编译和测试时有效
- import:导入的范围,它只使用在dependencyManagement中,表示从其它的pom中导入dependency的配置
使用Maven构建web项目
在新建project的时候,选择Maven project 即可创建Maven项目
右键Run as
选择Maven install
,会下载一些必要的声明周期的插件
pom文件
pom.xml
文件的一些介绍:
<groupId>com.wz</groupId>
<artifactId>testmaven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>testmaven</name>
<url>http://maven.apache.org</url>
<packaging>jar</packaging>
表示打包方式,如果是纯java的项目就是jar
,如果是web项目可以是war
,安卓项目可以是apk
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
properties
表示属性的一些设置
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
dependencies
表示一些依赖的管理
可能会出现的问题
创建后会提示The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path index.jsp /webapp/src/main/webapp
,是因为是没有servlet-api的缘故,添加Servlet依赖:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<!-- 只在测试时和编译时运行 -->
<scope>provided</scope>
</dependency>
检查目录,会发现只创建了resource目录
创建src/main/java
,src/test/java
目录
然后,在Project Facets
中要选上Dynamic Web Module
然后,调整部署的代码,在Deployment Assembly
中删除/src/test
相关的测试文件
使用Jetty作为web容器
在pom.xml中配置
<build>
<finalName>webapp</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.16.v20140903</version>
<executions>
<execution>
<!-- 在打包成功后使用jetty:run来运行jetty服务 -->
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
在浏览器输入http://localhost:8080
使用tomcat作为web容器
需要加入tomcat的maven插件
Maven Plugin
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
在浏览器输入http://localhost:8080/webapp/