Maven使用说明

一、常用命令

命令 解释
mvn clean 清理target目录
mvn package 项目打包,在target目录下生成jar或war文件
mvn install 将jar或war文件复制到本地仓库
mvn deploy 将打包的文件发布到远程仓库,可以配置到私服
以上命令可以组合使用,如mvn clean package会先清理target目录,然后再打包。

二、使用说明

1、配置私服

①Artifactory
1)单项目配置,修改项目pom.xml文件,增加以下配置

    
        
            artifactory
            your local artifactory
            http://localhost:8081/artifactory/repo
        
    

    
        
            artifactory
            your local artifactory
            http://localhost:8081/artifactory/plugins-releases
            
                false
            
        
    

2)全局配置

②Nexus
1)单项目配置

2)全局配置,修改MAVEN_HOME/conf/setting.xml
增加profile节点,将activeProfile节点的值设置为新增节点的id。

   
  
  profile-nexus  
  
    
  
  nexus  
  http://192.168.1.204:8081/nexus/content/groups/public/  
  true  
  true  
  
    
    
  
  nexus  
  http://192.168.1.204:8081/nexus/content/groups/public/  
  true  
  true  
  
    
 

  
	profile-nexus
   

3、将本地构建发布到私服

修改MAVEN_HOME/conf/setting,增加server节点,输入id名称。用户名密码对应的是私服的登录用户名密码。


  
  nexus-snapshots  
  admin  
  admin123  
  
  
  nexus-releases  
  admin  
  admin123  
  

  
  artifactory-snapshots  
  admin  
  p@ssw0rd  
  
  
  artifactory-releases  
  admin  
  p@ssw0rd  
  

①Artifactory
修改pom.xml文件,增加以下内容,其中snapshotRepository节点和repository节点的id分别指向上一步骤中server节点对应的id。maven_test为仓库名称



		
		
			artifactory-snapshots
			Nexus Snapshots Repository
			http://192.168.1.204:9081/artifactory/maven_test/
		
		
		
			artifactory-releases
			Nexus Releases Repository
			http://192.168.1.204:9081/artifactory/maven_test/
		

②Nexus
修改项目pom.xml文件,增加以下内容,其中snapshotRepository节点和repository节点的id分别指向上一步骤中server节点对应的id。





nexus-snapshots
Nexus Snapshots Repository
http://192.168.1.204:8081/nexus/content/repositories/snapshots/



nexus-releases
Nexus Releases Repository
http://192.168.1.204:8081/nexus/content/repositories/releases/


三、常见问题

1.指定运行JDK

修改MAVEN_HOME\bin\mvn.bat
增加以下两行

set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_171
set JRE_HOME=C:\Program Files\Java\jdk1.8.0_171\jre

2.发布到指定仓库

nexus默认的本地仓库有snapshots和releases两种仓库,在通过mvn deploy命令将构建文件发布到nexus的时候,会根据版本来决定发布到snapshots仓库还是releases仓库。
版本是x.x.x-Releases,则会发布到Releases仓库中;版本是x.x.x-SNAPSHOT则发布到Snapshots仓库中。

3.排除非本地区的目录或文件

可以在maven的pom.xml文件中使用正则exclude非area地区的目录


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

%regex[images/(?!${area}).*]

 

然后在jenkins项目上自定义maven命令,以下打包的时候,仅包括qy目录的文件。该方法存在一个缺陷,不能使用include和exclude实现兼容共性部分和非共性部分,以上的打包仅实现了

clean package -Darea=qy

打包结果如下:
Maven使用说明_第1张图片
以上的表达式适用于每个地区有单独的一个目录的情况,有另外一种情况是将所有地区的文件放在同一个目录下,仅是以地区编号区分开了的。
Maven使用说明_第2张图片
表达式如下

%regex[images/(?!${area}).*.png]

生成war包如下
Maven使用说明_第3张图片
其他一些更复杂的情况也可以通过表达式来实现这种不同地区的需求。

4.排除web.xml

maven在构建war包是默认web.xml是必须的,否则会在构建时报错。有一些场景不需要每次都需要将web.xml打包到war包里面,可能是本地的web.xml与实际各地区生产环境不一致等原因,需要将web.xml排除。



org.apache.maven.plugins
maven-war-plugin
2.1.1

				   WEB-INF/web.xml
				   false


5.排除java文件


maven-compiler-plugin

1.7
1.7
		
	**/supervise/onlineservice/interfaces/**
		


四、参考资料

https://www.cnblogs.com/shihaiming/p/6410813.html

你可能感兴趣的:(工具,maven,命令,配置私服)