Maven, a java project management tool

Category: /blog /programmer
Tags: programmer

Knowledge Base里有常用命令.

在很长的时间里我都不愿意学Maven. 原因是我很喜欢用Ant的简洁, 快速. 象configure/make/make install一样简单易懂. 但是Ant是一个build tool, 它在deployment/version/branches方面做得不够好. 说白了, Maven在这些方面做得好一些, 但是learning cost也高. 我现在对两个都没有强烈的偏向, 不会主动把ant转化成maven, 那样花的功夫可能还更多些.

Installation

通常我把常用的开发工具安装到/opt. 这样不会受到系统升级的影响.

  • download apache-maven-x.x.x-bin.tar.gz
  • install Maven to /opt

     export mvn=apache-maven-3.0.3
     tar zxf $mvn-bin.tar.gz
     mv $mvn /opt
    
  • edit .bashrc, 注意Eclipse 3.6在Java 7下安装m2e会出错, 使用Java 6就不会有问题. 原因是Java 7里改变了Array.sort()的实现. Eclipse 3.7.1里做出了相应的改动. 所以可以升级Eclipse到3.7.1, 或是把Java降到6.

     export JAVA_HOME=/opt/jdk1.6.0_30
     export M2_HOME=/opt/apache-maven-3.0.3
     export M2=$M2_HOME/bin
     export MAVEN_OPTS="-Xms256m -Xmx512m"
    
     export PATH=.:$HOME/bin:$M2:$PATH
    
  • 测试: source .bashrc, then test mvn --version
  • 可以通过’Eclipse Marketplace’安装’Maven Integration for Eclipse’, 或者直接装Eclipse plug-in, in ‘Help/Install new features’, add

     http://download.eclipse.org/technology/m2e/releases
    

First project

首先建立一个project, dir_name = maven-example, package_name=com.teckoo.app.

mvn archetype:generate -DgroupId=com.teckoo.app \
   -DartifactId=maven-example
   -DarchetypeArtifactId=maven-archetype-quickstart \
   -DinteractiveMode=false

Build the project,

mvn package

当你第一次运行这个命令时, 会发现Maven狂下载了许多工具包. 但这些工具包不在你的project里. 我在安装目录里/opt/apache-maven里没看到. 实际上它们被装在用户目录里~/.m2/repository.

运行测试,

java -cp  target/maven-example-1.0-SNAPSHOT.jar \
  com.teckoo.app.App

Basic operations

这些是最常用的命令.

  • mvn compile 相当于ant compile | make
  • mvn package 编译并生成jar
  • mvn clean 清理当前环境
  • mvn test junit 测试
  • mvn integration-test 集成测试
  • mvn install 部署到local repository
  • mvn deploy mvn site-deploy mvn tomcat:deploy 部署到远程环境
  • mvn site 生成文档

Resource

讨论

提示

  • 如果看不到讨论部分, 请暂时关掉adblock in Firefox/Chrome
  • 本网站使用Javascript实现评论功能, 此处外链对提高您的网站PR没有帮助. (潜台词: 请不要灌水, 谢谢)