maven(需要联网)+搭建web项目+私服仓库(仓库管理器)

软件包提取码:q5nw

1、Maven相关内容

  1. 功能
    1) maven模型的Java项目对源代码、单元测试代码、资源、jar包等有规范的目录规划
    2) 解决项目间的依赖关系、版本不一致、版本冲突问题
    3) 合理的jar包管理机制

  2. 应用场景----从运维角度理解
    1) 原来项目中的jar包必须手动复制、粘贴到WEB-INF/lib项目下而借助maven,可以将jar包仅仅保存在仓库中,有需要使用的工程只需要引用这个文件,并不需要重复复制到工程中
    2) 原来的项目中所需要的jar包都提前下载好的,而maven在联网状态下会自动下载所需要的jar包,首先在本地仓库中找,找不到就在网上进行下载
    3) 原来的项目中一个jar包所依赖的其他jar包必须手动导进来,而maven会自动将被以来的jar包导进来
    Jar包是来实现某一个功能,每一个功能都有对应的jar包
    War包web程序打包,直接就能部署的,war包就是一个项目

  3. 目录结构 举例:/tmp/kgcapp
    目录 说明
    /tmp/kgcapp 项目的根目录,存在pom.xml和所有的子目录
    /tmp/kgcapp/src/main/resources 项目的资源,比如说property文件,springmvc.xml
    /tmp/kgcapp/src/test/java 项目的测试类。比如说junit代码
    /tmp/kgcapp/src/test/resources 测试用例,用的找资源
    /tmp/kgcapp/src/main/webapp web应用文件按目录,比如存放web.xml、本地图片、jsp视图页面
    /tmp/kgcapp/target 打包输出目录,比如打包好的jar包或war包
    /tmp/kgcapp/target/classes 编译输出目录,用于保存输出的class文件
    /tmp/kgcapp/target/test-classes 测试编译输出目录
    根目录一般存放
    pom.xml 项目的配置文件
    src目录 java编写的代码

  4. Pom.xml文件说明
    1)Project:根,这是对project添加一些根元素的约束
    2)Modelversion : 根指定当前maven模型的版本号
    3)>packaging:指定生成包的格式(jar/war/rar/pom/ear)
    4)Parent标签:指定父级pom文件引用(继承)
    5)Properties:定义配置属性、约束开发规范。
    6)Dependencies标签:指定开发构建(jar包)
    7)>groupId:应该是公司名或者组织名,一般来说groupID有三个部分组成,每个部分之间以“.”分隔,第一部分是项目的用途,比如用于商业的就是com,用于非商业营利性组织的就是org,第二部分是公司名,比如tecent/baidu/alibaba,第三部分是你的项目名。
    8)> artifactID:可以认为是maven构建的项目名,比如你的项目中有子项目,就可以使用“项目名-子项目的命名方式”
    Version:版本号,SNAPSHOT意为快照,说明该项目还在开发中,是不稳定的版本。

  5. 关于仓库(本地仓库——远程仓库)

    1. 本地仓库(优先级最高)
      Maven会将工程依赖的构件(jar包)从远程下载到本机一个项目下管理,每个电脑默认的仓库是在“用户家目录下的.m2/repository”
    2. 远程仓库
      1)第三方仓库
      第三方仓库又称为内部中心仓库,也称为私服
      一般是由公司内部构件自己设立的,只为本公司内部共享使用,它既可以作为公司内部构件协作和存档,也可以作为公用类库镜缓存,减少在外部访问和下载的频率(使用了私服就减少了对中央仓库的访问)
      2)中央仓库
      Maven内置了远程公用仓库
      Maven官方仓库
      http://repol.maven.org.maven2 这个公共仓库是由maven自己维护,里面有 大量的常用类库,并包含了世界上大部分流行的开源项目构件,目前是以java为主,工程需要的jar如果本地仓库没有,默认从中央仓库下载。
  6. 生命周期
    在这里插入图片描述
    在这里插入图片描述

2、安装maven

1、搭建jdk环境

[root@CentOS1 ~]# tar zxf jdk-8u201-linux-x64.tar.gz 
[root@CentOS1 ~]# mv jdk1.8.0_201/ /usr/local/java
[root@CentOS1 ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
[root@CentOS1 ~]# rm  -rf /usr/bin/java       
[root@CentOS1 ~]# source /etc/profile
[root@CentOS1 ~]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

2、安装maven

[root@CentOS1 ~]# 
[root@CentOS1 ~]# tar zxf apache-maven-3.6.0-bin.tar.gz 
[root@CentOS1 ~]# mv apache-maven-3.6.0 /usr/local/maven
#添加环境变量
[root@CentOS1 ~]# vim /etc/profile
#末行处添加
export PATH=$PATH:/usr/local/maven/bin
[root@CentOS1 ~]# source /etc/profile
[root@CentOS1 ~]# mvn -v
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
[root@CentOS1 ~]# mvn archetype:generate -DgroupId=com.kgc.kgcapp -DartifactId=kgcapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
[root@CentOS1 ~]# cd kgcapp/

3、maven应用

1、编译

[root@CentOS1 kgcapp]# mvn compile
[root@CentOS1 kgcapp]# ls	#如果有target文件则证明成功
pom.xml  src  target

maven加速版

[root@CentOS1 ~]# cd /root/kgcapp/
[root@CentOS1 kgcapp]# vim /usr/local/maven/conf/settings.xml
#在158行后添加
159 <mirror>
160         <id>aliyun</id>
161         <name>aliyun-maven</name>
162         <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
163         <mirrorOf>central</mirrorOf>
164 </mirror>

2、打包

[root@CentOS1 kgcapp]# mvn package
[root@CentOS1 kgcapp]# ls target/kgcapp-1.0-SNAPSHOT.jar 
target/kgcapp-1.0-SNAPSHOT.jar

3、测试

[root@CentOS1 kgcapp]# mvn test

4、清除

[root@CentOS1 kgcapp]# mvn clean
[root@CentOS1 kgcapp]# ls
pom.xml  src

5、将包上传到本地仓库

[root@CentOS1 kgcapp]# mvn install
[root@CentOS1 kgcapp]# ls /root/.m2/repository/com/kgc/kgcapp/kgcapp/1.0-SNAPSHOT/
kgcapp-1.0-SNAPSHOT.jar  maven-metadata-local.xml
kgcapp-1.0-SNAPSHOT.pom  _remote.repositories

6、将包上传到私服

[root@CentOS1 kgcapp]# mvn deploy

7、组合命令

[root@CentOS1 kgcapp]# mvn clean package
[root@CentOS1 kgcapp]# mvn clean install
#组合命令使用场景:
#在时机环境当中  有的可能需要源代码修改  所以需要先清空原来的   然后在重新打包,这样原来就不会影响现在

8、jar包云行

[root@CentOS1 kgcapp]# cd /root/.m2/repository/com/kgc/kgcapp/kgcapp/1.0-SNAPSHOT/
[root@CentOS1 1.0-SNAPSHOT]# java -cp kgcapp-1.0-SNAPSHOT.jar com.kgc.kgcapp.App
Hello World!

4、使用maven部署web项目

[root@CentOS1 ~]# mvn archetype:generate -DgroupId=com.kgc.kgcweb -DartifactId=kgcweb -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
[root@CentOS1 ~]# cd kgcweb/
[root@CentOS1 kgcweb]# ls
pom.xml  src
[root@CentOS1 kgcweb]# mvn package
[root@CentOS1 kgcweb]# ls target/
classes  kgcweb  kgcweb.war  maven-archiver
#需要有tomcat环境
[root@CentOS1 kgcweb]# cp /root/kgcweb/target/kgcweb.war /usr/local/tomcat/webapps/
[root@CentOS1 kgcweb]# /usr/local/tomcat/bin/shutdown.sh
[root@CentOS1 kgcweb]# /usr/local/tomcat/bin/startup.sh
[root@CentOS1 kgcweb]# curl 192.168.10.1:8080/kgcweb/
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

5、使用maven搭建私服仓库

1、Nexus介绍
2、Nexus的搭建

#需要jdk环境
```bash
[root@CentOS1 ~]# tar zxf jdk-8u201-linux-x64.tar.gz 
[root@CentOS1 ~]# mv jdk1.8.0_201/ /usr/local/java
[root@CentOS1 ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
[root@CentOS1 ~]# rm  -rf /usr/bin/java       
[root@CentOS1 ~]# source /etc/profile
[root@CentOS1 ~]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
#安装nexus
[root@CentOS2 ~]# tar zxf nexus-3.14.0-04-unix.tar.gz -C /usr/local/nexus/
[root@CentOS2 ~]# /usr/local/nexus/bin/nexus start
WARNING: ************************************************************
WARNING: Detected execution as "root" user.  This is NOT recommended!
WARNING: ************************************************************
Starting nexus
[root@CentOS2 ~]# netstat -anput | grep 8081	
#由于包太多启动时间较长,如果检测不到该服务已开启可以等2-3分钟在试一次,过程中不要重启服务,启动之后服务可能也会掉时刻关注这就好。
tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN      15936/java
[root@CentOS2 ~]# ulimit -HSn 65536	#临时修改文件描述符
[root@CentOS2 ~]# ulimit -n
65536
[root@CentOS2 ~]# firefox http:192.168.10.2:8081
#用户名 admin
#密码 admin123

登录用户
在这里插入图片描述
创建角色
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更改用户密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
日常的维护工作

[root@CentOS2 support]# 
[root@CentOS2 support]# java -jar nexus-orient-console.jar 
#切换到安全库中(sercurity)
orientdb> connect plocal:../sonatype-work/nexus3/db/security admin admin

让maven从nexus上下载

#关闭两边的防火墙或放行端口
#maven主机
[root@CentOS1 ~]# rm -rf /root/.m2/repository/	#如果没有这个文件可以不用删除
[root@CentOS1 ~]# vim /usr/local/maven/conf/settings.xml
#修改	ID和name字段内容随便,url路径没问题就可以。
160       <id>kgcconf</id>
161       <mirrorOf>*</mirrorOf>
162       <name>nexus-kgcconf</name>
163       <url>http://192.168.10.2:8081/repository/maven-public/</url>
164     </mirror>
[root@CentOS1 ~]# cd kgcapp/
[root@CentOS1 kgcapp]# ls
pom.xml  src  target
[root@CentOS1 kgcapp]# mvn clean package
#在编译的过程中查看是否是从私服下载的
Downloaded from kgcconf: http://192.168.10.2:8081/repository/maven-public/commons-lang/commons-lang/2.1/commons-lang-2.1.jar (208 kB at 70 kB/s)
#在nexus主机查看
[root@CentOS2 ~]# firefox 192.168.10.2:8081

在这里插入图片描述
在这里插入图片描述
maven将包上传到nexus中

[root@CentOS1 kgcapp]# vim /usr/local/maven/conf/settings.xml
#添加
133     <server>
134         <id>nexus</id>
135         <username>mario</username>
136         <password>admin123</password>137     </server>
253 <profile>
254     <id>kgccong</id>
255     <repositories>	#上传的仓库
256         <repository>
257             <id>nexus</id>
258             <url>http://192.168.10.2:8081/repository/maven-public/</url>
259         </repository>
260     </repositories>
261     <pluginRepositories>	#长传插件的仓库
262         <pluginRepository>
263             <id>nexus</id>
264             <url>http://192.168.10.2:8081/repository/maven-public/</url>
265         </pluginRepository>
266     </pluginRepositories>
267 </profile>
275   <!-- activeProfiles
276    | List of profiles that are active for all builds.
277    |-->
278   <activeProfiles>
279     <activeProfile>kgcconf</activeProfile>	#kgcconf是259行id标签中的内容
280   </activeProfiles>

#修改享目总的文件,因为主要是项目v自身上传
[root@CentOS1 kgcapp]# vim pom.xml
#添加
 10   <distributionManagement>
 11         <snapshotRepository>
 12             <id>nexus</id>
 13             <name>Nexus Snapshot</name>
 14             <url>http://192.168.10.2:8081/repository/maven-snapshots/</    url>    
 15         </snapshotRepository>
 16         <repository>
 17             <id>nexus</id>
 18             <name>Nexus Release</name>
 19             <url>http://192.168.10.2:8081/repository/maven-releases/</u    rl>
 20         </repository>
 21   </distributionManagement>
[root@CentOS1 kgcapp]# mvn clean deploy
 #上传到另外一个库
[root@CentOS1 kgcapp]# vim pom.xml
 #修改
   7   <version>1.0</version>
[root@CentOS1 kgcapp]# mvn clean deploy
#如果过程中出现这个错误可根据下面的想法解决

错误信息
在这里插入图片描述
解决方法
在这里插入图片描述
在这里插入图片描述
mavven上传第三方工具

#nexus主机
[root@CentOS2 ~]# firefox 192.168.10.2:8081

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将3rd添加到组中
在这里插入图片描述
在这里插入图片描述

#maven主机
[root@CentOS1 ~]# vim /usr/local/maven/conf/settings.xml
#添加
137     </server>
138     <server>
139         <id>nexus</id>
140         <username>mario</username>
141         <password>admin123</password>
142     </server>
270         <repository>
271             <id>3rd</id>272             <url>http://192.168.10.2:8081/repository/3rd/</url>
273         </repository>
#开始上传,一定要在第三方jar包存放位置去操作
[root@CentOS1 ~]# mvn deploy:deploy-file -DgroupId=com.aliyun.oss -DartifactId=aliyun-sdk-oss -Dversion=2.6.1 -Dpackaging=jar -Dfile=/root/aliyun-sdk-oss-2.6.1.jar -Durl=http://192.168.10.2:8081/repository/3rd/ -DrepositoryId=3rd
Uploaded to 3rd: http://192.168.10.2:8081/repository/3rd/com/aliyun/oss/aliyun-sdk-oss/maven-metadata.xml (308 B at 880 B/s)
#nexus主机查看
[root@CentOS2 ~]# firefox 192.168.10.2:8081

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值