maven工程搭建、maven私服搭建、idea项目打包

简述

maven是啥我这里就不做介绍了,需要教程的可以私信我,文章主要介绍使用idea搭建maven工程

一。搭建maven服务端

通常网上说的搭建maven环境指的是搭建maven客户端,客户端默认从中央仓库( http://www.mvnrepository.com/ )下载jar包。

maven安装目录
  |--bin   Maven的可执行命令文件夹
  |--boot  Maven的引导程序(类加载器)
  |--conf  配置文件夹
  |--lib   Maven的核心程序代码

Maven的仓库分类

  • 本地仓库:本地缓存jar包的文件夹,通常我们会修改本地仓库地址

  • 远程仓库:也叫私服。一些企业、组织、社区自己搭建的仓库服务

  • 中央仓库:Maven官方团队提供的仓库,里边有最全的jar包

常用的项目构建命令:

  • 清理:mvn clean,清理target目录

  • 编译:mvn compile,编译主体程序代码,结果放在target目录里

  • 测试:mvn test,运行单元测试代码。要求:单元测试类放在src\test\java里,并且类名以Test结尾

  • 打包:mvn package,把主体程序代码打包。Java项目打包成jar包,web项目打包成war包

  • 安装:mvn install,把程序包安装到本地仓库。

依赖范围:在打包时需要设定scope作用域

maven工程搭建、maven私服搭建、idea项目打包_第1张图片

(一)windows安装

用于项目开发

1.下载maven安装包

http://maven.apache.org/download.cgi

2.压缩包解压

3.配置环境变量

  • 增加MAVEN_HOME=Maven的解压目录

  • 修改Path中添加 %MAVEN_HOME%\bin

4.配置conf/setting.xml目录

指定jdk版本

   
    jdk-1.8    
       
        true    
        1.8    
   
   
       
        1.8    
        1.8    
        1.8    
   
   

改变仓库位置

默认在用户目录下,这样会占用C盘的空间: D:\server\maven

5.验证Maven配置

cmd命令:mvn -version

(二)linux安装

用于项目部署,当然你也可以选择不安装,在本地直接把依赖都打包到项目工程里面。

其他步骤均和windows一样,只有设置环境变量不一样

linux设置环境变量

设置环境变量 :

vim /etc/profile

在/etc/profile中添加以下几行

MAVEN_HOME=/usr/local/maven3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

执行source /etc/profile使环境变量生效

source /etc/profile

最后运行mvn -v验证maven是否安装成功,如果安装成功会打印如下内容

mvn -v

(三)maven聚合工程的创建

搭建maven聚合工程,可以把子模块建在父工程里面,也可以创建一个空项目把父工程和子工程做成同级目录后在pom添加依赖,需要注意的是父工程是做版本控制的,同时父工程里面有的包子工程都会自动继承。比如mybatis的依赖只有dao层使用,就不要添加到父工程中。

构建普通maven聚合工程详细步骤参考:https://www.cnblogs.com/limn/p/9363416.html

创建spring boot的maven聚合工程

你可以先创建普通maven聚合工程之后添加spring boot的起步依赖,也可以使用idea的spring initalizr创建工程后再设定聚合工程的父子关系(演示)。

(1)创建空项目用来放置项目

maven工程搭建、maven私服搭建、idea项目打包_第2张图片

maven工程搭建、maven私服搭建、idea项目打包_第3张图片

(2)设置maven环境

maven工程搭建、maven私服搭建、idea项目打包_第4张图片

(3)创建父工程模块

maven工程搭建、maven私服搭建、idea项目打包_第5张图片

maven工程搭建、maven私服搭建、idea项目打包_第6张图片

添加起步依赖:注意有版本区别,后面的步骤确定即可

maven工程搭建、maven私服搭建、idea项目打包_第7张图片

(4)创建子工程

maven工程搭建、maven私服搭建、idea项目打包_第8张图片

maven工程搭建、maven私服搭建、idea项目打包_第9张图片

后面一直确定即可

(5)建立父子依赖

父模块pom

maven工程搭建、maven私服搭建、idea项目打包_第10张图片

子模块pom

maven工程搭建、maven私服搭建、idea项目打包_第11张图片

(6)其他步骤

删除无用的文件

maven工程搭建、maven私服搭建、idea项目打包_第12张图片

web目录没有webapps目录(参考):https://blog.csdn.net/fakerswe/article/details/80922536

补充pom文件

       比如你需要打包到私服就需要添加配置,内容参考文章后面的部分

(6)运行

这种方式创建的项目会自动创建程序入口,使用程序入口启动项目即可

idea项目打包

spring boot打包工具默认把运行文件打包到各模块的target目录下,生成的jar也在该目录下

maven工程搭建、maven私服搭建、idea项目打包_第13张图片

直接丢上去运行可能会找不到类,这时我们可以充分的利用idea提供给我的打包设置。

war包

先设置编译输出实体,把编译后生成的文件按照web工程的方式设置,创建后默认的就可以

maven工程搭建、maven私服搭建、idea项目打包_第14张图片

再设置输出war包实体

maven工程搭建、maven私服搭建、idea项目打包_第15张图片

maven工程搭建、maven私服搭建、idea项目打包_第16张图片

jar包

maven工程搭建、maven私服搭建、idea项目打包_第17张图片

maven工程搭建、maven私服搭建、idea项目打包_第18张图片

创建后再项目目录下会新增一个文件

maven工程搭建、maven私服搭建、idea项目打包_第19张图片

结果验证

maven工程搭建、maven私服搭建、idea项目打包_第20张图片

maven工程搭建、maven私服搭建、idea项目打包_第21张图片

maven工程搭建、maven私服搭建、idea项目打包_第22张图片

注意:这个操作一定要再添加依赖之后,如果新增依赖,需要重新设置实体。

这样打包所有的依赖都解压成class文件,如果你想打成jar的形式

maven工程搭建、maven私服搭建、idea项目打包_第23张图片

你也可以把lib单独做一个文件夹打到一起(参考):https://blog.csdn.net/nopotential/article/details/79018471

总之打包你想怎么打就怎么打,想把依赖放哪就放哪,不过单独依赖单独打包就注意项目启动要设置classpath加载路径,否则会出现找不到依赖包的错误。

(四)搭建maven私服

私服服务器即是公司内部的 maven 远程仓库, 每个员工的电脑上安装 maven 软件并且连接私服服务器,员工将自己开发的项目打成 jar 并发布到私服服务器,其它项目组从私服服务器下载所依赖的构件(jar)。私服还充当一个代理服务器,当私服上没有 jar 包会从互联网中央仓库自动下载 ,个人开发是否安装私服根据实际需求,可以将本地依赖包上传到maven本地或者直接按照普通工程方式导入项目,这样就不需要安装私服。

maven工程搭建、maven私服搭建、idea项目打包_第24张图片

特点

1.便于公司内部jar包调用

2.提高jar包下载速度

安装步骤

参考链接:https://blog.csdn.net/ffggnfgf/article/details/87120000

1.下载私服nexus安装包

https://www.sonatype.com/download-oss-sonatype>

2.解压安装包

   查看nexus的配置文件conf/nexus.properties

  maven工程搭建、maven私服搭建、idea项目打包_第25张图片

3.安装服务

使用管理员方式运行dos,切换到安装目录D:\server\nexus\nexus-3.20.1-01\bin,执行nexus.bat install

4.启动服务

maven工程搭建、maven私服搭建、idea项目打包_第26张图片或者使用nexus.bat start

启动成功

maven工程搭建、maven私服搭建、idea项目打包_第27张图片

5.验证

管理界面http://localhost:8081/nexus

登入账号admin 新版本的密码不再是admin123

/sonatype/sonatype-work/nexus3/ 复制 admin.password 里 的密码登录即可,登录后,会提示要修改密码,修改密码后,会发现/nexus-data/admin.password 已经不在

6.卸载nexus

cmd进入nexus的bin目录,

停止服务

执行:nexus.bat stop

执行:nexus.bat uninstall

nexus仓库

1.仓库

仓库类型

hosted(宿主) :私服

    maven-releases : 指公司内部已经发布正式版本的项目 (自己开发)

​    maven-snapshorts : 指公司内部项目还处于测试版本的项目 (自己开发)

   ​ maven-3rd party : 私服配置指向第三方仓库 (其它公司开发 )

proxy(代理) :私服

   maven-central:代理仓库,代理中央仓库

   自己新增阿里云的仓库,提高下载速度,阿里云的maven仓库url为http://maven.aliyun.com/nexus/content/groups/public

    然后再public组里面讲这个aliyun-proxy仓库加入,排在maven-central之前即可。

group:仓库组

   maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用

Nexus的调度任务

默认安装好之后是没有索引和jar文件的,因为你要自己定义任务去执行。

Nexus提供了一系列可配置的调度任务来方便用户管理系统。用户可以设定这些任务运行的方式,例如每天、每周等。调度任务会在适当的时候在后台运行。

要建立一个调度任务,单击左边导航菜单中的Tasks,点击Create Task,然后选择一个任务类型。

maven工程搭建、maven私服搭建、idea项目打包_第28张图片

下几种常用类型的调度任务:

  • Execute script:执行自定义脚本
  • Purge开头:清理一些不使用的资源。
  • Rebuild repository index:为仓库重新编纂索引,从远仓库下载最新的索引。
  • Rebuild Maven repository metadata:基于仓库内容重新创建仓库元数据文件,同时重新创建每个文件的校验和md5与sha1。
  • Remove snapshots from Maven repository:把快照删了,这个是在稳定版发布后清除

Nexus搜索页

这个不需要登录就可以访问,用来查询jar包。支持模糊查询

maven工程搭建、maven私服搭建、idea项目打包_第29张图片

Blob Stores

文件存储的地方,创建一个目录的话,对应文件系统的一个目录,可供仓库上传文件使用,如图所示:

maven工程搭建、maven私服搭建、idea项目打包_第30张图片

 

本地Maven使用私服

安装和配置好之后,在开发中如何使用呢。可在maven的默认配置settings.xml中修改如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

    
        releases
        admin
        admin123
    
    
        snapshots
        admin
        admin123
    



    
        nexus
        *
        http://localhost:8081/repository/maven-public/
    



      
      dev
      
        
          Nexus
          http://localhost:8081/repository/maven-public/
          
            true
          
          
            true
            always
          
        
      
      
        true      
        1.8
      
      
        1.8
        1.8
        1.8
      
    


    dev

如果要发布自己的jar到私服,就需要修改工程的pom.xml,添加如下内容,否则什么都不用做:

1
2
3
4
5
6
7
8
9
10
11
12

  
    maven-releases
    itcast-releases
    http://localhost:8081/repository/maven-releases/
  
  
    maven-snapshots
    itcast-snapshots
    http://localhost:8081/repository/maven-snapshots/
  

注意上面的repository的id值一定要跟settings.xml文件中配置的server一致。

上传到Nexus上,使用 mvn deploy 即可,开发的时候请使用snapshot版本,也就是version的后缀必须是-SNAPSHOT

1
2
3
4
com.enzhico
micro-pay-sdk
1.2-SNAPSHOT
jar

快照版成功效果

maven工程搭建、maven私服搭建、idea项目打包_第31张图片

第三方Jar上传到Nexus

1
2
3
4
5
6
7
8
mvn deploy:deploy-file \
    -DgroupId= \
    -DartifactId= \
    -Dversion= \
    -Dpackaging= \
    -Dfile= \
    -DrepositoryId= \
    -Durl=

-DrepositoryId的值即为在setttings.xml里面配置的server id。

打包或发布的时候如果想跳过测试,加一个参数:

1
mvn clean && mvn deploy -DskipTests=true

你可能感兴趣的:(项目管理工具)