欢迎查看Java开发之上帝之眼系列教程,若是您正在为Java后端庞大的体系所困扰,若是您正在为各类繁出不穷的技术和各类框架所迷茫,那么本系列文章将带您窥探Java庞大的体系。本系列教程但愿您能站在上帝的角度去观察(了解)Java体系。使Java的各类后端技术在你心中模块化;让你在工做中能将Java各个技术了然于心;可以即插即用。本章咱们来一块儿了解项目构建工具Maven。html
在进行编程操做的时候,咱们经常会遇到不少与编程无关的项目管理工做,以下载依赖、编译源码、单元测试、项目部署等操做。通常的,小型项目咱们能够手动实现这些操做,然而大型项目这些工做则相对复杂。构建工具是帮助咱们实现一系列项目管理、测试和部署操做的工具。java
Java项目构建工具备哪些?git
<?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.jimisun</groupId> <artifactId>learnmaven</artifactId> <version>1.0-SNAPSHOT</version> <!--项目打包方式--> <packaging>war</packaging> <!--定义全局属性--> <properties> <spring.version>4.1.1.RELEASE</spring.version> </properties> <!--管理依赖--> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> </dependencies> <!--管理配置或定制插件--> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>
Maven经过坐标groupId:artifactId:version来标识一个惟一的二进制版本,一个Maven工程若是添加某个依赖只须要查找这个依赖的坐标便可,开发中经常使用查询依赖网址http://mvnrepository.com/github
<!--管理依赖--> <dependencies> <!--添加Spring-Context的依赖--> <dependency> <!--标识组织--> <groupId>org.springframework</groupId> <!--标识项目--> <artifactId>spring-context</artifactId> <!--标志版本--> <version>4.1.1.RELEASE</version> </dependency> </dependencies>
PS:经过parent能够实现pom文件继承父类完成统一配置管理,能够使用<dependencyManagement></dependencyManagement>和<pluginManagement></pluginManagement>统一依赖和插件,不一样于<dependencies>和<plugins>的是,若是子类pom没有声明<dependency>和<plugin>不生效!web
在一个maven项目中,一个标准的web项目结构以下spring
项目的结构是支持自定义的,可是不要这么作,别人看到自定义的项目结构会产生歧义,构建标准的目录结构有利于项目构建的标准化。若是须要自定义项目结构,能够在pom中这样配置。apache
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <warSourceDirectory>WebContent/</warSourceDirectory> </configuration> </plugin> </plugins> <sourceDirectory>src</sourceDirectory> <resources> <resource> <directory>resources</directory> </resource> </resources> <testSourceDirectory>test/java</testSourceDirectory> <testResources> <testResource> <directory>test/resources</directory> </testResource> </testResources> <directory>build</directory> </build>
java代码目录移动到./src
配置文件目录移动到resources
测试代码目录移动到./test/java
测试配置文件移动到./test/resources
webapp根目录移动到WebContent
编译目录改变成./build
maven-compiler-plugin:源码编译插件编程
配置本地Maven仓库:在maven的conf目录的settings.xml的settings标签中增长下面一行后端
<localRepository>E:\maven\mavenhome\repo(你的本地仓库地址)</localRepository>
配置Maven镜像远程仓库(阿里):在maven的conf目录的settings.xml的mirrors标签中增长下面代码tomcat
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
根据不一样环境打包不一样配置文件到项目(有示例代码点击此处查看完整示例代码)
<profiles> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <resource.dir>resource/dev</resource.dir> </properties> </profile> <profile> <id>prod</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <resource.dir>resource/prod</resource.dir> </properties> </profile> </profiles> <build> <resources> <resource> <directory>${resource.dir}</directory> </resource> <resource> <directory>resources</directory> </resource> </resources> </build>
Maven命令大全(后面将会整理出比较细系统和全面的Maven命令大全)
http://www.javashuo.com/article/p-djafkiuy-y.html