maven的使用

阅读更多
附件中是《maven实战》前三章的电子版
  maven用于项目管理,项目jar包的依赖,有三个坐标groupId,artifactId,version(版本号)。
  主要常用的命令有
mvn clean,清除生成的类文件,即target文件夹下的classes文件
                    mvn compile,编译
                    mvn package,将项目打包为jar文件或其他压缩文件,具体由pom文件指定
mvn install,将jar包安装到本地库中,(默认在C盘的C:\Documents and Settings\用户名  下)
mvn eclipse:eclipse生成eclipse项目

mvn clean install -DskipTests -Denv=dev 编译打包并跳过测试

mvn play2:run -Dplay2.httpPort=9001 -Dplay2.serverJvmArgs="-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=9991,suspend=n" maven启动play项目
9991是远程调试接口

如果想看依赖的第三方jar包的源码:
eclipse的设置:勾选windows-Preferences-Maven-Download Artifact Sources 这个选项

使用maven命令行下载依赖包的源代码:
mvn dependency:sources
mvn dependency:sources -DdownloadSources=true -DdownloadJavadocs=true
-DdownloadSources=true 下载源代码Jar  -DdownloadJavadocs=true 下载javadoc包

如果执行后还是没有下载到,可以到仓库上搜一下,然后放到指定的目录下即可,就可以在项目里看到源码了

pom文件如下:


	4.0.0
	com.juvenxu.mvnbook
	helloworld
	1.0-SNAPSHOT
	Maven Hello World Project
	  //依赖于junit-4.8.2.jar包
		
			junit
			junit
			4.8.2
			test //如果在src文件夹下的java文件中import junit的类会出错,但如果在test文件夹下就不会出错。默认为compile范围,
		
	

	
		
			 //用于执行,指定要执行的主类
				org.apache.maven.plugins
				maven-shade-plugin
				1.2.1
				
					
						package
						
							shade
						
						
							
								

									com.juvenxu.mvnbook.helloworld.HelloWorld
								
							
						
					
				
			
		

	



这样再执行mvn clean install,就会在target文件夹下生成两个jar文件,其中一个以original开头的,是没有指定MainClass的,另外一个是在meta-info文件夹下的MANIFEST.MF文件中指定了Main class。

再用java -jar命令就可以执行这个可执行的jar文件了


需要在maven的pom文件中添加如下的插件,才能保证在eclipse中可以正确的运行maven的命令:




maven-clean-plugin
      2.4.1
     
        false
     





解决maven项目中源文件的编码问题,在pom文件中的properties添加如下元素:
GBK
     GBK

另外:
Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的。进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven- compiler-plugin的compile目标用来编译位于src/main/java/目录下的主源码,testCompile目标用来编译位于src/test/java/目录下的测试源码。

用户可以通过两种方式调用Maven插件目标。第一种方式是将插件目标与生命周期阶段(lifecycle phase)绑定,这样用户在命令行只是输入生命周期阶段而已,例如Maven默认将maven-compiler-plugin的compile目标与 compile生命周期阶段绑定,因此命令mvn compile实际上是先定位到compile这一生命周期阶段,然后再根据绑定关系调用maven-compiler-plugin的compile目标。第二种方式是直接在命令行指定要执行的插件目标,例如mvn archetype:generate 就表示调用maven-archetype-plugin的generate目标,这种带冒号的调用方式与生命周期无关。

认识上述Maven插件的基本概念能帮助你理解Maven的工作机制,不过要想更高效率地使用Maven,了解一些常用的插件还是很有必要的,这可 以帮助你避免一不小心重新发明轮子。多年来Maven社区积累了大量的经验,并随之形成了一个成熟的插件生态圈。Maven官方有两个插件列表,第一个列 表的GroupId为org.apache.maven.plugins,这里的插件最为成熟,具体地址为:http://maven.apache.org/plugins/index.html。第二个列表的GroupId为org.codehaus.mojo,这里的插件没有那么核心,但也有不少十分有用,其地址为:http://mojo.codehaus.org/plugins.html。

  • Maven实战.pdf (1.7 MB)
  • 下载次数: 28

你可能感兴趣的:(maven)