Maven

一、简介

Maven是一个软件项目管理和综合工具。基于项目对象模型(POM)的概念。

Maven简化和标准化项目建设过程。处理编译、分配、文档、团队协作和其他任务的无缝连接,增加可重用性并负责建立相关的任务。

最强大的功能就是能够自动下载项目依赖库。

二、Maven资源库

1、Maven启用代理访问(无法上网的情况)

        如果公司建立防火墙,且使用HTTP代理服务器来阻止用户直接连接到互联网,则Maven将无法下载任何依赖。因此需在Maven的配置文件中设置代理服务器:settings.xml.

        找到{M2_HOME}/conf/settings.xml, 并把你的代理服务器信息配置写入。

代码块

XML

  
    
  

 

取消注释代理选项,填写你的代理服务器的详细信息;保存文件,重新启动(非必需)。

4、Maven本地资源库

         Maven本地资源库:用来存储所有项目的依赖关系(插件jar和其他文件,这些文件被Maven下载)到本地文件夹。Mac OS默认为~/.m2目录文件夹

        a. 更新Maven的本地库:在{M2_HOME}\conf\setting.xml, 更新 localRepository 到其它名称

代码块

XML

  
  D:\software\yiibai.com\apache-maven\repository
  

 

     b. 保存文件,执行命令(其实不知道是干啥的,保存的又是啥)

mvn archetype:generate -DgroupId=com.yiibai -DartifactId=NumberGenerator -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

5、Maven中央资源库

         Maven 将从本地资源库获得 Maven 的本地资源库依赖资源,如果没有找到,然后把它会从默认的 Maven 中央存储库 – http://repo1.maven.org/maven2/ 查找下载。

         Maven中心储存库网站已经改版本,目录浏览可能不再使用。这将直接被重定向到 http://search.maven.org/。

6、Maven添加远程存储库

        如:为得到java.net的依赖,在pom.xml文件声明远程仓库。 

代码块

XML

  
      java.net
      https://maven.java.net/content/repositories/public/
  
 
  

               添加JBoss远程仓库:

代码块

XML

    
      
  JBoss repository
  http://repository.jboss.org/nexus/content/groups/public/
      
    
 
  

 

7、Maven依赖机制

 自动下载所有必需的依赖库,并保持版本升级。搜索库顺序:本地仓库——中央存储库——远程仓库

如:想使用 Log4j 作为项目的日志:

传统方式

Maven方式

访问http://logging.apache.org/log4j/

下载Log4j的jar库

复制jar到项目类路径

手动将其包含到项目的依赖

所有管理需要一切由自己做

知道log4j的Maven坐标(gruopId、artifactId、version)

自动下载log4j的1.2.14版本库(若无version标签,则当有新版本时自动升级库)

声明Maven的坐标转换成pom.xml文件

当 Maven 编译或构建,log4j 的 jar 会自动下载,并把它放到 Maven 本地存储库

 

代码块

XML

    
  log4j
  log4j
  1.2.14
    
 
  

注:GroupID是项目组织唯一的标识符,实际对应Java的包的结构,是main目录里java的目录结构。

       ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。

8、定制库到Maven本地资源库(如kaptcha:第三方java库,用来生成“验证码”的图片)(jar入库方式)

(1)下载 “kaptcha”,将其解压缩并将 kaptcha-version.jar 复制到其他地方,比如:C盘

(2)执行命令:mvn install:install-file -Dfile=c:\kaptcha-{version}.jar -DgroupId=com.google.code -DartifactId=kaptcha -Dversion={version} -Dpackaging=jar

         “kaptcha” jar被复制到 Maven 本地存储库

(3)在pom.xml 中声明 kaptcha 的坐标

com.google.code

kaptcha

2.3

9、Maven外部依赖

(1)添加lib文件夹到src文件夹

(2)复制任何的jar到lib文件夹。如:ldapjdk.jar

(3)配置pom.xml。(指定 groupId 同样作为库的名称;指定 artifactId 同样作为库的名称;指定范围的系统;指定相系统项目的位置)

ldapjdk

ldapjdk

system

1.0

${basedir}\src\lib\ldapjdk.jar

10、Maven使用传递性依赖机制

三、使用Maven构建项目

1、Maven项目模板

     Maven 使用 Archetype 概念为用户提供不同类型的项目模板;而Archetype 是一个 Maven 插件,其任务是按照其模板来创建一个项目结构。

     命令:mvn archetype:generate

2、使用Maven创建java项目

     (1)使用命令行或终端:在要创建java项目的文件夹下执行:

mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name}-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

如果忽视 archetypeArtifactId 选项,一个巨大的 Maven 模板列表将列出。

     (2)自己手动参照maven目录结构创建文件夹

 

src/main/java

Application/Library sources

src/main/resources

Application/Library resources

src/main/resources-filtered

Application/Library resources which are filtered. (Starting with Maven 3.4.0, not yet released.)

src/main/filters

Resource filter files

src/main/webapp

Web application sources

src/test/java

Test sources

src/test/resources

Test resources

src/test/resources-filtered

Test resources which are filtered by default. (Starting with Maven 3.4.0, not yet released.)

src/test/filters

Test resource filter files

src/it

Integration Tests (primarily for plugins)

src/assembly

Assembly descriptors

src/site

Site

LICENSE.txt

Project's license

NOTICE.txt

Notices and attributions required by libraries that the project depends on

README.txt

Project's readme

3、Eclipse项目

(1)终端进入到项目中,执行命令:mvn eclipse:eclipse,然后导入到Eclipse IDE中

4、Maven打包

     参考pom.xml文件,包元素定义包应该输出什么。

代码块

XML

  4.0.0
  com.yiibai
  NumberGenerator  
  jar  
  1.0-SNAPSHOT

      终端执行mvn package

4、Maven创建Web项目

(1)执行命令:mvn archetype:generate -DgroupId=com.yiibai -DartifactId=CounterWebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

                           mvn eclipse:eclipse -Dwtpversion=2.0

(2)mvn site

四、Maven-项目

1、Maven构建项目

     打开控制台,进入到 pom.xml 文件所放的项目文件夹,执行mvn package

2、Maven清理项目      

    在基于Maven的项目中,很多缓存输出在“target”文件夹中。故建立项目部署时,执行mvn clean清理所有缓存的输出

3、Maven运行单元测试

    运行整个单元测试:mvn test

    运行单个测试(TestApp2):mvn -Dtest=TestApp2 test

4、将项目安装到本地资源库

    mvn install(当“install”在执行阶段,上述所有阶段 “validate“, “compile“, “test“, “package“, “integration-test“, “verify” 阶段, 包括目前的“install”阶段将被执行有序。)建议运行mvn clean install

 

 

五、Maven快照

        快照(SNAPSHOT )是一个特殊版本,指出目前开发拷贝。不同于常规版本,Maven 每生成一个远程存储库都会检查新的快照版本。

附录:

maven命令: 

 mvn archetype:create 创建Maven项目

mvn compile 编译源代码

mvn deploy 发布项目

mvn test-compile 编译测试源代码

mvn test 运行应用程序中的单元测试

mvn site 生成项目相关信息的网站

mvn clean 清除项目目录中的生成结果

mvn package 根据项目生成的jar

mvn install 在本地Repository中安装jar

mvn eclipse:eclipse 生成eclipse项目文件

mvnjetty:run 启动jetty服务

mvntomcat:run 启动tomcat服务

mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类

 

maven仓库资源查询:http://mvnrepository.com/

 

你可能感兴趣的:(Maven管理,idea&git的使用学习)