`
liugang594
  • 浏览: 978741 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Maven使用入门

阅读更多

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

 

一、安装

 

要下载Maven可以去:http://maven.apache.org/download.html

 

下载完以后解压到某个目录,例如:D:/Maven3

 

然后最后是添加一下环境变量,例如Windows,可以添加Maven_HOME,指定到安装目录,然后在path变量中添加 %Maven_HOME%\bin

 

这样mvn命令行就可以使用了。

 

二、配置

 

默认的配置文件在 %Maven_HOME%\conf 目录下,默认的本地存储路径为:~/.m2/repository 目录下。默认情况下配置文件是一个全局可用的,如果你想针对个人用户单独设置一个配置,可以将 %Maven_HOME%\conf 下的settings.xml文件拷到 ~/.m2 目录下,然后修改对应的配置,例如我想把默认的本地存储路径修改为 D:/M3Repository,就需要在settings.xml文件中添加一条:

<localRepository>D:\M3Repository</localRepository>

 

更多资料,请参考http://maven.apache.org/

 

三、POM 文件

 

和Ant的build.xml类似,Maven也有一个操作对象文件,也就是上面英文中提到的工程对象模型(project object model)(pom)文件,也即pom.xml;所以运行mvn时需要的信息都在pom.xml中定义好,然后直接运行对应的mvn命令即可。

 

四、Maven库

 

Maven最大的方便性之一,我觉得就是Maven库了,Maven库可以分为远程库和本地库,上面实现的localRepository就是一个本地库。每次当添加一个新的依赖包到pom.xml中,maven会先在本地库查找,如果找到,则直接引用本地库中的包,否则则从远程库上下载的lib包都是放到这个本地库里,再添加到引用中。可以在pom里定义多个远程库,后面会介绍的Archiva就是一个用来创建和管理库的开源项目。

 

下载和配置引用包的整个过程由maven自动完成,不需要个人的干预。要查找某个包,可以登陆:http://mvnrepository.com/。然后查找。

 

 

五、纬度

 

以上已经知道,maven有一个库的概念。于是问题就来了:Maven怎么从库中定位特定的引用包?Maven通过一种特殊的结构来定义每个包,以便能方便的查找到特定的包:

 

/<groupId>/<artifactId>/<version>/<artifactId>-<version>.<packaging>

 

具体的这些字段的意义可以访问:http://maven.apache.org/pom.html

简单来说groupId类似于包名,artifactId类似于类名,version定位到类的某个特定版本,比如说用svn管理的某个版本。packaging表示打包类型。通过这种分层的结构,就可以很方便的定位的特定的库包。所以groupId, artifactId, version和packaging是使用maven中的关键。

 

六、使用

 

有了以上的知道,就可以开始使用maven。首先需要提供一个pom文件,可以通过以下命令,让maven自动生成一个:

mvn archetype:generate

 

然后根据提示一步一步的添加必要的信息,也可以一次性的提供所需的信息:

 

mvn archetype:create -DgroupId=com.liugang -DartifactId=demo ...

 

然后在本地就会生成一个名称为demo的文件夹,结构为:

 

demo下还会生成一个对应pom.xml文件。

 

Maven工程会有一个默认的路径结构:

  • src/main/java:主代码文件夹
  • src/test/java:测试代码文件夹
  • src/main/resources:资源文件夹
  • src/test/resources:测试资源文件夹

更多的,可以参考:http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

 

当然这些默认配置也可以很方便在pom.xml文件中修改。

 

OK,这样一个Maven工程就生成了,可以开始写代码了。

 

七、生命阶段

 

不同于Ant的task依赖关键,Maven是通过运行一些生命周期过程来完成特定任务,每个生命过程阶段可以称之为阶段(phase),例如常见的阶段有:initialize, compile, test, install, deploy等等。

 

更详细的介绍,请看:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

 

执行每个阶段的时候,都会将该阶段以上的所有阶段运行一遍,例如如果运行initialize阶段,则会先运行validate阶段。

 

八、运行

 

可以有三种从maven运行java程序的方式:

  1. 从命令行运行:mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main" -Dexec.args="arg0 arg1 arg2"
  2. 从阶段(phase)运行:
    view plaincopy to clipboardprint?
    <build>  
     <plugins>  
      <plugin>  
       <groupId>org.codehaus.mojo</groupId>  
       <artifactId>exec-maven-plugin</artifactId>  
       <version>1.1.1</version>  
       <executions>  
        <execution>  
         <phase>test</phase>  
         <goals>  
          <goal>java</goal>  
         </goals>  
         <configuration>  
          <mainClass>com.vineetmanohar.module.CodeGenerator</mainClass>  
          <arguments>  
           <argument>arg0</argument>  
           <argument>arg1</argument>  
          </arguments>  
         </configuration>  
        </execution>  
       </executions>  
      </plugin>  
     </plugins>  
    </build>  
     
  3. 从profile运行:
    view plaincopy to clipboardprint?
    <profiles>  
     <profile>  
      <id>code-generator</id>  
      <build>  
       <plugins>  
        <plugin>  
         <groupId>org.codehaus.mojo</groupId>  
         <artifactId>exec-maven-plugin</artifactId>  
         <version>1.1.1</version>  
         <executions>  
          <execution>  
           <phase>test</phase>  
           <goals>  
            <goal>java</goal>  
           </goals>  
           <configuration>  
            <mainClass>com.vineetmanohar.module.CodeGenerator</mainClass>  
            <arguments>  
             <argument>arg0</argument>  
             <argument>arg1</argument>  
            </arguments>  
           </configuration>  
          </execution>  
         </executions>  
        </plugin>  
       </plugins>  
      </build>  
     </profile>  
    </profiles>   

更多介绍,可以参考:http://www.vineetmanohar.com/2009/11/3-ways-to-run-java-main-from-maven/

 

关于profile的作用,可以参考:http://maven.apache.org/guides/introduction/introduction-to-profiles.html

 

 

 

  • 大小: 4.1 KB
分享到:
评论

相关推荐

    Maven 使用入门.pdf

    Maven 使用入门.pdf

    maven 使用入门第三章

    maven 使用入门第三章,只有第三章技术文档资料。

    maven使用入门

    maven入门教程,maven是一个有用的构建工具,把源代码构建成可发布构件的工具,值得一学。

    Maven实战- 入门

    第 3 章 Maven 使用入门 16. 3.1 编写 POM 17. 3.2 编写主代码 18. 3.3 编写测试代码 19. 3.4 打包和运行 20. 3.5 使用 Archetype 生成项目骨架 21. 3.6 m2eclipse 简单使用 22. 3.7 NetBeans Maven 插件简单使用 ...

    Maven3入门

    Maven3入门

    Maven快速入门

    Maven快速入门,管理源码,版本控制,

    Maven+SpringMVC的入门级HelloWorld实例

    Maven+SpringMVC的入门级HelloWorld实例,简单了解Maven和SpringMVC整合

    Maven实战 安装配置

    第3章 Maven使用入门16.3.1 编写POM17.3.2 编写主代码18.3.3 编写测试代码19.3.4 打包和运行20.3.5 使用Archetype生成项目骨架21.3.6 m2eclipse简单使用22.3.7 NetBeans Maven插件简单使用23.3.8 小结

    maven的入门使用

    maven入门使用 maven创建web项目 maven生成eclipse项目 maven+jetty的使用 jetty在eclipse的配置和使用

    maven_实战_学习笔记

    Maven 使用入门 主代码 位置:src/main/java 命令:mvn clean compile 解释:clean告诉maven清理target目录 compile告诉maven 编译项目主代码 测试代码 位置:src/test/java 命令:mvn clean test 打包运行 ...

    maven + springmvc 入门实例

    maven + springmvc 入门实例,安装好maven之后导入myeclipse即可运行。maven安装方法请自行百度

    maven window下安装包

    第3章:Maven使用入门/3.1 编写POM 第3章:Maven使用入门/3.2 编写源代码 第3章:Maven使用入门/3.3 编写测试代码 第3章:Maven使用入门/3.4 打包 第3章:Maven使用入门/3.5 发布 第5章:坐标和依赖/5.2 坐标详解 第...

    超详细Maven快速入门到精通.txt打包整理.zip

    超详细Maven快速入门到精通.txt打包整理.zip

    maven-javaweb入门

    maven的Javaweb入门实例,可用idea打开,也可用eclipse打开

    maven 的入门篇

    写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法。...写这两篇文章特意回避了复杂的示例,也不使用 IDE ,目的是排除干扰,着重于 maven 本身

    maven基础入门教程

    maven 入门教程PDF,包括maven介绍,配置,项目创建,eclipse创建maven项目等

    maven入门到精通

    maven入门到精通 用 Maven 做项目管理 在 Java世界中我们很多的开发人员选择用 Ant来构建项目,一个 build.xml能够完成编译、测试、打包、部署等很多任务,但我们也碰到了很多的问题,如 jar文件管理混乱,各个...

    Maven手把手入门教程

    内容包括:利用Maven构建项目源代码,Maven思维导图;Maven版本使用手册,Maven手把手入门

Global site tag (gtag.js) - Google Analytics