`

maven 总结

 
阅读更多

一、maven简介____________________________________________________________

 

构建build(编译,运行单元测试,生成文档,打包,部署)

        每天第一件事,update代码,单元测试,编写自己的测试代码和产品代码,用IDE生成测试报告,

        QA发来bug,先在本地重现,按后生成WAR,部署到WEB容器下。除了编写源代码,编译,运行单元测试,

        生成文档,打包,部署,这些琐碎的工作就是构建,琐碎重复而且耗时,maven就是解决这个问题。

 

被误解的maven

        只有两类计算机语言,一类天天被人骂,还有一类没人用。--c++之父本贾尼。总会有bug。

        

MAVEN_HOME/M2_HOME是安装目录

~/.m2是本地仓库目录,可以在MAVEN_HOME/conf/setting.xml里修改,(windows下~当前目录c:/Users/river/)

mvn help:system

        输出java系统属性和环境变量(仅在第一次执行命令时下载需要的maven-help-plugin)

        

二、maven使用入门____________________________________________________________

 

官方库,内部库(也叫私服),本地库

maven有自己的一个官方库,一般公司会在配置一个自己的内部远程库(也叫私服),

本地库:安装目录中setting.xml的<localRepository>节点

跨项目的同包-rt.jar里也有很多的。能分离解耦开当然利大于弊。

约定优于配置

 

配置文件

maven只有一个配置文件:conf\setting.xml

 

编写pom.xml(项目配置文件)

        坐标:groupId,artifactId,version,packaging

        

编写主代码src/main/java/com/river/HelloWorld.java(maven约定,约定优于配置)

        编译mvn clean compile

        输出显示对应3个任务[clean:clean],[resources:resources],[compiler:compile](这是compiler插件的compile目标)

        

编写测试代码

        <dependency>

                <groupId>junit</groupId>

                ,artifactId,version,

                <scope>test</scope>        //指明只能在测试代码中import junit,主代码中import会报编译错误。

        </dependency>        

        mvn clean test

        输出显示对应3个任务[clean:clean],[resources:resources],[compiler:compile],,[resources:testResources],[compiler:testCompile]

        配置maven-compiler-plugin支持java5,使得支持junit,maven默认是java1.3,执行junit会报错

                <build>

                <plugins>

                    <plugin>

                        <groupId>org.apache.maven.plugins</groupId>

                        <artifactId>maven-compiler-plugin</artifactId>

                        <configuration>

                            <source>1.5</source>

                            <target>1.5</target>

                        </configuration>

                    </plugin>

                    

打包和运行            

        <packaging>jar</packaging>默认为jar,也可以为war,bundle

        mvn clean package //执行[jar:jar]

        mvn clean install        //执行[jar:jar],[install:install]把生成的jar安装到本地仓库中。

        构件或者生成的jar只有下载到本地仓库后,才能被其他maven项目使用

        默认打包生成的jar不能直接运行,因为带有main方法的类信息不会添加到manifest中(jar文件中的META-INF/MANIFEST.MF文件         

        ,无法看到Main-Class一行), 需要借助maven-shade-plugin。

生成项目骨架(基本目录结构和pom.xml)

        mvn archetype:generate

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics