Maven, a java project management tool
Category: /blog /programmerTags: 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
/optexport 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 testmvn --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 | makemvn package编译并生成jarmvn clean清理当前环境mvn testjunit 测试mvn integration-test集成测试mvn install部署到local repository-
mvn deploymvn site-deploymvn tomcat:deploy部署到远程环境 mvn site生成文档