maven 备忘

阅读更多
一.配置

1.有的项目的pom.xml中没有配置maven远程远程仓库,maven的server.xml中也没有配置。那么项目中的依赖是在哪里下载的呢?
  肯定有一个默认的远程仓库,叫做中央仓库,他配置在maven的超级pom中,而所有的maven项目都继承该pom,这个超级pom集成在${M2_HOME}/lib/maven-model-builder-3.0.5.jar/org/apache/maven/model/pom-4.0.0.xml中,打开该文件,可以看到这个:

  
    
      central
      Central Repository
      http://repo.maven.apache.org/maven2
      default
      
        false
      
    
  

  其中http://repo.maven.apache.org/maven2就是默认的远程仓库。就是因为有了它我们才可以不进行仓库配置也能下载依赖。
  当然,我们也可以使用其他的远程仓库,比如自己公司内部的仓库。配置如下:


	repository.engineering.redhat.com
	RedHat Engineering Operations
	https://repository.engineering.redhat.com/nexus/content/repositories/hss-tools
	
		true
	
	
		false	
	
	default



  配置在server.xml中会作用于所有项目,在自己的pom.xml中则只作用于该项目

[size=medium]
2.导入插件

     
        
		
		  org.apache.maven.plugins
		  maven-war-plugin
		  2.3
		  
	          pay
		  
		
        
    

上面这个插件可以用于去掉打包时候的版本号,warName为包名
也可以用

    
        pay
    


[size=medium]3.指定编码方式

 
            UTF-8 

4.自定义变量

 1.2.6



用EL表达式方式引用,方便日后统一修改版本号,如

 org.springframework
 spring-core
 ${spring.version}


 org.springframework
 spring-aop
 ${spring.version}


5.继承与聚合
  继承:概念与java中的继承类似。目的是抽出公共的元素,在开发中尽量减少项目的配置简化开发。例如:要并行开发好几个项目,而这些项目中又有很多相同的配置,那么就可以建立一个父项目A,包含这些配置,而其他项目只需要继承父项目A,不用再进行这些重复的配置。
B要继承A需要在B的pom.xml中添加配置如下:

  
    com.lngtop.piaohao
    piaohao
    1.0-SNAPSHOT
    
  

子项目的pom文件会继承父pom文件的所有元素

  聚合:目的是把聚合的各个module(项目)一起构建。例如:要打包多个项目A、B、C时,如果用聚合的话就不必分别打包,可以直接打包父项目(被聚合的项目)便会打包所有项目
把B聚合到A中需要在A的pom.xml中添加如下配置

    
        pay
    


实际开发中一般会将继承与聚合混合使用,此时只要同时加上以上配置即可。

6.排除传递依赖
  例如我们的项目A依赖B,而B依赖C,而A不依赖C。此时可在A中排除C,起到项目瘦身作用


		B的groupId
		B的artifactId
		${B.version}
                  
                     
                          C的groupId  
                          C的artifactId  
                     
                




二.命令

1.导入官网没有的jar包:
  先安装mvn install:install-file -DgroupId=*** -DartifactId=*** -Dversion=*** -Dpackaging=jar -Dfile=***.jar
2.创建web项目:
    mvn archetype:create -DgroupId=packageName -DartifactId=webappName -Dversion=0.1 -DarchetypeArtifactId=maven-archetype-webapp
3. 编译: mvn compile
4. 编译测试代码:mvn test-compile   
5. 运行测试:mvn test    
6. 打包:mvn package  
7. 清除mvn生成的文件:mvn clean  
8. 生成eclipse项目:mvn eclipse:eclipse 
9. 编译测试的内容:mvn test-compile 
10. 只打jar包: mvn jar:jar 
11. 清除eclipse的一些系统设置:mvn eclipse:clean
12.下载依赖的源代码:mvn dependency:sources -DdownloadSources=true (下载源代码jar) -DdownloadJavadocs=true (下载javadoc包)

你可能感兴趣的:(maven)