maven教程及私服搭建

1.maven是什么? 2.maven解决了问题?有什么好处?有什么作用?

传统项目:
1.项目目录结构不清晰(src : 源代码)
2.不同的IDE创建项目结构不一样,移植困难
3.项目依赖的jar占磁盘空间,jar版本冲突
4.项目构建周期(编译、测试、部署、运行)

maven:

   src
     -- main    运行
        -- java   :   源代码
        -- resourses: 配置(资源)文件
     -- test       测试
        -- java     测试源代码
        -- resources  测试配置(资源)文件
     -- webapp    view

Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。
项目构建是指项目从编译、测试、运行、打包、部署整个过程都交给maven进行管理;
一键构建是指maven集成了tomcat插件,使用maven一个命令就可以轻松完成整个工作;
一、maven的安装(window下)
1.解压压缩包(以apache-maven-3.3.9-bin.zip为例)
2.添加环境变量M2_HOME,值为apache-maven-3.3.9的安装路径(依赖jdk,需先配置JAVA_HOME)
3.在Path环境变量的变量值末尾添加%M2_HOME%\bin;
4.在cmd输入mvn –version或mvn -v,如果出现maven的版本信息,说明配置成功。
二、对maven进行配置
1.本地仓库配置

从中央仓库下载的jar包,都会统一存放到本地仓库中。
默认放在当前用户目录下的.m2目录(C:\Users\Administrator.m2\repository)
我们可以更改本地仓库的位置。
打开maven安装目录,打开conf目录下的setting.xml文件。
可以参照以下配置本地仓储位置。

<localRepository>E:\repository\maven\repo</localRepository>

2.配置中央仓库镜像mirror

有时候默认的镜像地址属于国外网站导致访问不畅,所以有必要进行替换。
国外

	<mirror> 
		<id>mirrorId</id> 
		<name>Human Readable Name for this Mirror.</name> 
		<url>http://repo1.maven.org/maven2</url> 
		<mirrorOf>central</mirrorOf>
	</mirror>

国内

	<mirror>
		<id>alimaven</id>
		<name>aliyun maven</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
		<mirrorOf>central</mirrorOf>
	</mirror>

这样,所有的 jar 包依赖项都会从新指定的 url 中下载。

三、maven常用命令
在这里插入图片描述
a.mvn clean
清除项目之前运行生成的文件(target)
b.mvn compile
编译项目,但不会编译test目录下的源代码;
若项目是第一次编译,还会下载相关依赖包;
c.mvn test
编译项目,同时对test目录下的源代码进行编译;
d.mvn package
对项目进行打包,生成jar文件,打包前会进行编译;
e.mvn install
下载构建打包项目,并将生成jar安装到本地仓库
f.mvn deploy
部署项目
参考: https://www.cnblogs.com/shoshana-kong/p/11031388.html

IDEA中对maven的配置:
在这里插入图片描述
在这里插入图片描述
-DarchetypeCatalog=internal 表示:我们在未联网的情况下使用maven的模板时,从本地中找到之前联网时下载的插件来使用。

四、在IntelliJ IDEA中配置maven并构建web项目
在这里插入图片描述
选择后缀是webapp的模板
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、maven搭建多模块项目:
1.创建一个父工程

2.在父工程基础上,创建module
添加的配置为 archetypeCatalog=internal

maven解决了代码的可重用和可维护:
maven把一个完整的项目,分成了不同的独立模块,这些模块都有各自独立的坐标,我需要用到其中哪个模块,就直接引用该模块的坐标即可。

六、maven私服搭建
(作为了解,因为进入公司之后,公司不会等着你去搭建私服。。。)
nexus-2.12.0-01-bundle.tar.gz linux版本
nexus-2.12.0-01-bundle.zip windows版本
下面以window版本为例,进行maven私服搭建(远程仓库)

nexus安装和启动

1.解压nexus-2.12.0-01-bundle.zip(解压到没有中文没有特殊符号的目录中,解压后如下图所示:)
在这里插入图片描述
其中,nexus-2.12.0-01表示你nexus的安装包
sonatype-work 表示你搭建私服的远程仓库
2.进入nexus-2.12.0-01/bin目录中,找到nexus.bat文件(此为安装命令)
在这里插入图片描述
3.使用管理员身份运行打开cmd,运行nexus.bat文件

nexus.bat install 安装nexus
【补:nexus.bat uninstall】 卸载nexus
安装后,在服务中出现:
在这里插入图片描述
4.启动nexus

nexus.bat start

5.查看nexus-2.12.0-01\conf下 nexus.properties 文件

在这里插入图片描述
8081为nexus图形化界面的端口号(注意:别与其他程序端口号冲突)

浏览器访问: http://localhost:8081/nexus
在这里插入图片描述
这个页面需要登录,点击右上处 Log in:
用户名和密码为: admin – admin123

点击左侧菜单 repository
在这里插入图片描述
在右侧内容界面可看到repository相关信息:
在这里插入图片描述

hosted: 宿主仓库,部署自己的 jar 到这个类型的仓库,包括 releases 和 snapshot 两部分,Releases 公司内部发布版本仓库、 Snapshots 公司内部测试版本仓库
proxy: 代理仓库,用于代理远程的公共仓库,如 maven 中央仓库,用 户连接私服,私服自动去中央仓库下载 jar 包或者插件

group: 仓库组,用来合并多个 hosted/proxy 仓库,通常我们配置自己 的 maven连接仓库组
virtual(虚拟):兼容 Maven1 版本的 jar 或者插件(仅做了解)

私服的相关操作

1.如何将我们写的代码上传至私服仓库?
a.先让我们的工程能访问私服
b.找到你本机的maven安装目录中conf/settings.xml,在节点下添加:

<server> 
<id>releases</id> 
<username>admin</username> 
<password>admin123</password> 
</server> 
<server> 
<id>snapshots</id> 
<username>admin</username> 
<password>admin123</password> 
</server> 

c.配置pom.xml (你需要将你的哪个工程jar上传到私服,就配置对应工程的pom.xml),直接添加至根目录

配置私服仓库的地址,本工程的 jar 包会上传到私服的宿主仓库,根据工程的版本号决定上传到哪个宿主仓库,如果版本为 release 则上传到私服的 release 仓库,如果版本为 snapshot 则上传到私服的 snapshot 仓库

<distributionManagement> 
<repository> 
<id>releases</id> 
<url>http://localhost:8081/nexus/content/repositories/releases/</url> 
</repository> 
<snapshotRepository> 
<id>snapshots</id> 
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url> 
</snapshotRepository> 
</distributionManagement>

注意:pom.xml 这里 和 settings.xml 配置 对应!
通过执行本工程的maven的deploy命令就可以将本工程jar包上传至私服仓库;

2.如何从私服仓库下载jar到本地仓库?

a.对本地maven/conf/settings.xml进行配置,在节点中

<!-- 下载jar包配置 -->
	<profile> 
		<!--profile的id -->
		<id>dev</id>
		<repositories>
			<repository>
 <!--仓库id,repositories可以配置多个仓库,保证id不重复 -->
				<id>nexus</id>
 <!--仓库地址,即nexus仓库组的地址 -->
				<url>http://localhost:8081/nexus/content/groups/public/</url> 
				<!--是否下载releases构件 -->
				<releases>
					<enabled>true</enabled>
				</releases> 
				<!--是否下载snapshots构件 -->
				<snapshots>
					<enabled>true</enabled>
				</snapshots>
			</repository>
		</repositories>
		<pluginRepositories> <!-- 插件仓库,maven的运行依赖插件,也需要从私服下载插件 -->
			<pluginRepository> <!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 -->
				<id>public</id>
				<name>Public Repositories</name>
				<url>http://localhost:8081/nexus/content/groups/public/</url>
			</pluginRepository>
		</pluginRepositories>
	</profile>

添加上述配置后,还要进行激活,还是在settings.xml文件中,根节点下(通常放到最后)

<activeProfiles>
		<activeProfile>dev</activeProfile>
	</activeProfiles>

注意:activeProfile 这里dev 和 上面profile 配置 对应!

以上就是关于maven私服中如何进行jar的上传和下载!!!

安装第三方jar包到本地仓库操作

安装第三方jar包到本地仓库

方式一:----进入jar包所在目录运行
mvn install:install-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dfile=fastjson-1.1.37.jar -Dpackaging=jar

方法二:----打开cmd直接运行
mvn install:install-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dpackaging=jar -Dfile=E:\my_java\third_jar\fastjson\fastjson-1.1.37.jar

–安装第三方jar包到私服

–在settings配置文件中添加登录私服第三方登录信息

<server>
<id>thirdparty</id>
<username>admin</username>
<password>admin123</password>
</server>

方式一:进入jar包所在目录运行

mvn deploy:deploy-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dpackaging=jar -Dfile=fastjson-1.1.37.jar -Durl=http://localhost:8081/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty

方式二:打开cmd直接运行

mvn deploy:deploy-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dpackaging=jar -Dfile=E:\my_java\third_jar\fastjson\fastjson-1.1.37.jar -Durl=http://localhost:8081/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值