歡迎查看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