maven 3 常用命令

   命令行方式:首先切换工作目录到当前工程根目录,也就是pom.xml所在的目录。
   i. 在编译、打包或安装之前,确保工程没有编译错误,依赖包也可用。
   ii. 在父项目上运行编译、打包或安装命令,将会根据依赖关系依次打包所有的子项目;如果仅仅是编译、打包或安装某个子项目,确保依赖的包已经打好或者在本地(远程)仓库中存在。

1. 清理
mvn clean

使用的插件是:maven-clean-plugin

2. 编译
mvn compile

使用的插件是:
maven-resources-plugin (处理资源文件)
maven-compiler-plugin (编译源代码)

配置:
<build>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-resources-plugin</artifactId>
			<version>2.5</version>    	
		</plugin>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>2.5.1</version>
			<configuration>
				<source>1.6</source>
				<target>1.6</target>
			</configuration>    	
		</plugin>    	
	</plugins>
</build>

以上配置放在主pom.xml中,为整个工程定义资源和编译环境。


3. 测试
mvn test -Dtest=***Test

其中,***Test为被测试用例类的全限定名。

使用的插件是(包括编译用到的插件):
maven-surefire-plugin

4. 打包

在工程根目录下生成target文件夹,文件夹内存放jar (war)包,class文件以及资源等内容

mvn package

使用的插件是(包括测试用到的插件):
maven-javadoc-plugin (文档包)
maven-jar-plugin (jar包)
maven-war-plugin (war包)

5. 安装

先打包,然后在本地repo仓库中生成工程jar (war)包目录。

a. 命令行方式:
mvn install

使用的插件(包括打包用到的插件):
maven-install-plugin

b. 界面方式:
   在IDE(Eclipse)的工程上右键[Run As],第一次运行时选择[Maven build...],以后直接选择[Maven build],maven将使用上一次的配置运行:

  
   在弹出的对话框的Goals框中输入需要执行的maven的命令,如clean install等,Profiles框输入settings.xml或pom.xml中指定的配置名,如dev, prod等,然后指定一些参数,Debug Output表示输出调试信息,Skip Tests表示跳过测试步骤,点击[Run]就开始安装了:


6. 部署

先安装,然后上传jar (war)包到远程repo仓库:
mvn deploy

使用的插件 (包括安装用到的插件):
maven-deploy-plugin

跳过编译、打包或部署过程中的测试步骤:

加上参数:
-Dmaven.test.skip=true

或者
-DskipTests


7. 运行程序

运行系统本地程序。

mvn exec:exec -Dexec.executable="notepad.exe" -Dexec.args="pom.xml"

使用的插件: exec-maven-plugin

也可以用exec目标来运行java
mvn exec:exec -Dexec.executable="java" -Dexec.args="-Dproperty1=value1 -XX:PermSize=256m -classpath %classpath% com.john.app.Mosaic arg1 arg2"


除了exec目标之外,exec-maven-plugin还提供了一个java目标,该目标要求你提供一个mainClass参数,然后它使用当前项目的依赖作为classpath,在同一个JVM中运行该mainClass:
mvn exec:java -Dexec.mainClass=com.john.app.Mosaic -Dexec.args="arg1 arg2" -Dexec.classpathScope=runtime

猜你喜欢

转载自czj4451.iteye.com/blog/1941821