简介
maven 是一个java项目管理和编译工具,可以很方便的导入依赖包,构建,运行
生命周期
maven主要有以下几个生命周期,另外maven的执行是按顺序来的,
比如执行package, 会先执行validate,接着compile, test,最后再做package
-
validate
// 验证项目是否正确 -
compile
// 执行编译,将.java文件编译成.class, 拷贝resource -
test
// 运行单元测试 -
package
// 将文件打包成对应配置的war包或者jar包 -
verify
// install
site
deploy
另外还有一个 clean
的命令,顾名思义就是先清理现场,这里会直接删掉对应的编译的target目录,也是十分干脆了。
常用配置讲解
我这里就将在这个里面用到的配置都粗略的讲一遍好了.
-
project.properties
这个地方可以定义一些变量供下面定义plugin,dependency这些的时候使用,比如你spring你需要引入多个包,包的版本都是一样的,你就可以提出来成变量,这样想改的时候就很方便了
-
project.build.plugins
这个地方可以定义插件,这里就定义了一个tomcat7-maven-plugin这个插件,将tomcat直接引入进来,这样的话就能直接在idea上启动和关闭内置的这个tomcat服务器,不用跑到终端去运行了,毕竟有的改参数还是需要重启一下下的
-
project.build.outputDirectory
,project.build.directory
可以自定义构建生成的目标目录
-
project.repositories
这个地方可以定制maven远程库的地址,比如国内访问maven太慢就可以直接换成aliyun的仓库
-
project.dependencies
在这里添加依赖,基本上我是先去https://mvnrepository.com/先去查需要的源,然后在详情页可以直接复制出maven的格式贴过来就行了。
上一下这个demo对应的maven文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
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>org.crazyit</groupId>
<artifactId>hrsystem</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<struts.version>2.2.1</struts.version>
<spring.version>3.0.7.RELEASE</spring.version>
<hibernate.version>3.6.7.Final</hibernate.version>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<!--控制tomcat端口号 -->
<configuration>
<port>8080</port>
<!-- 发布到tomcat后的名称 -->
<!--/ 相当于把项目发布成ROOT -->
<uriEncoding>UTF-8</uriEncoding>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>aliyun</id>
<name>aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</repository>
</repositories>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-core -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-json-plugin -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
<version>${struts.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.javassist/javassist -->
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.26.0-GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-web-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>${struts.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.1</version>
<!-- <scope>test</scope>-->
</dependency>
</dependencies>
</project>
tomcat插件讲解
这个插件安装的话就按照上面的就行了,加一个plugin
使用的使用要在src/main目录下新建一个webapp的目录,里面的结构的话就是要一个WEB-INF的子目录
目录结构如下
```bash
src
├── main
│ ├── java
│ │ └── org
│ │ └── crazyit
│ │ └── hrsystem
│ │ ├── action
│ │ │ └── base
│ │ ├── bean
│ │ ├── constant
│ │ ├── dao
│ │ │ └── impl
│ │ ├── domain
│ │ ├── schedule
│ │ └── service
│ │ └── impl
│ ├── resources
│ │ └── org
│ │ └── crazyit
│ │ └── hrsystem
│ │ └── domain
│ └── webapp
│ └── WEB-INF
│ └── content
│ ├── employee
│ └── manager
└── test
└── java
## 小节
maven的使用其实挺简单的,整个项目下来其实不需要怎么改, 只要一直往里面插入dependency就好了.
使用上配上idea的哪个`auto import`食用更佳。基本上一改动就会自动去下载啥的
创建项目的时候需在maven项目,然后接下来就愉快的编程了。 当然遇到了需要改配置的时候就可以直接查文档了。我这里只是稍微做一下提及