晋城市公用事业建设局网站,网站建设营销平台,网站建设优化推广,网页源码怎么做网站Maven私有仓库、上传jar包、引用私服jar包、上传本地项目到私服
搭建私有服务器
前面已经说过了#xff0c;我们使用Maven的使用#xff0c;如果需要导入相对应的jar包#xff0c;Maven首先会在我们的本地仓库中寻找—私有仓库—中心仓库…
然而#xff0c;我们…Maven私有仓库、上传jar包、引用私服jar包、上传本地项目到私服
搭建私有服务器
前面已经说过了我们使用Maven的使用如果需要导入相对应的jar包Maven首先会在我们的本地仓库中寻找—私有仓库—中心仓库…
然而我们的本地仓库常常没有想要的jar包的而经常去中心仓库下载这就非常浪费时间和资源了…因此我们一般都有一个私有仓库…
另外有些公司都不提供外网给项目组人员因此就不能使用maven访问远程的仓库地址所以很有必要在局域网里找一台有外网权限的机器搭建nexus私服然后开发人员连到这台私服上这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库 准备步骤
我们使用的是nexus框架来搭建私服它属于sonatype 机构的开源框架用该框架架设maven 私有服务器
Nexus环境搭建
第一步下载nexus-webapp-1.9.2.4.war包然后拷贝到tomcat下的webapps目录中第二步启动tomcat 默认登录账户密码为: admin admin123第三步访问http://localhost:8080/项目名称/
tomcat会自动解析war包然后就自动下载插件…
访问该项目进到首页 登陆…
仓库介绍 proxy是远程仓库的代理。比如说在nexus中配置了一个central repository的proxy当用户向这个proxy请求一个artifact这个proxy就会先在本地查找如果找不到的话就会从远程仓库下载然后返回给用户相当于起到一个中转的作用Hosted是宿主仓库用户可以把自己的一些构件deploy到hosted中也可以手工上传构件到hosted里。比如说oracle的驱动程序ojdbc6.jar在central repository是获取不到的就需要手工上传到hosted里Group是仓库组在maven里没有这个概念是nexus特有的。目的是将上述多个仓库聚合对用户暴露统一的地址这样用户就不需要在pom中配置多个地址只要统一配置group的地址就可以了右边那个Repository Path可以点击进去看到仓库中artifact列表。不过要注意浏览器缓存。我今天就发现明明构件已经更新了在浏览器里却看不到还以为是BUG其实是被浏览器缓存了virtual也是中央仓库镜像,支持M1老版本
每个仓库的作用
3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库Central: 用来代理maven中央仓库中发布版本构件的仓库Central M1 shadow: 用于提供中央仓库中M1格式的发布版本的构件镜像仓库Codehaus Snapshots: 用来代理CodehausMaven 仓库的快照版本构件的仓库Releases: 用来部署管理内部的发布版本构件的宿主类型仓库Snapshots:用来部署管理内部的快照版本构件的宿主类型仓库
仓库组是一个虚拟的概念就是通过对实体仓库(proxy、hosted)进行聚合, 对外暴露一个统一的地址这里要注意的是放到左边的仓库才是会被聚合的仓库
仓库组的配置顺序 上传jar包到私服
直接通过网站上传,把桌面上的pig-0.12.1.jar上传到私有服务器中 再次查看的时候已经上传上去了 从私服依赖jar包
在pom.xml文件配置私服的路径、组id、版本等等 !-- 假如没有私服 则 本地仓库找不到则访问中心仓库假如有私服 访问顺序首先访问本地仓库本地仓库没有则访问私服仓库私服仓库也没有则访问中心仓库--!-- 加载的是 第三方项目使用的jar包 --repositoriesrepositorysnapshotsenabledtrue/enabled/snapshotsidpublic/idnamepublic/nameurlhttp://localhost:8080/nexus-2.6.2/content/groups/public//url/repository/repositories!-- 加载的是maven生命周期插件的jar包 --pluginRepositoriespluginRepositoryreleasesupdatePolicynever/updatePolicy/releasessnapshotsenabledtrue/enabled/snapshotsidpublic/idnamepublic/nameurlhttp://127.0.0.1:8080/nexus-2.6.2/content/groups/public//url/pluginRepository/pluginRepositories在本地仓库中也把私服的jar包下载下来了 把本地项目发布到私服
server的配置可以在Maven的settings.xml中写上 !-- 分销管理 把jar包发布到私服中 --!-- 配置服务器--serveridreleases/idusernameadmin/usernamepasswordadmin123/password/serverserveridsnapshots/idusernameadmin/usernamepasswordadmin123/password/server值得注意的是你得留意你用的是哪个Maven是你自己下载的Maven还是使用Idea集成的Maven如果没有配置的话那么就会出现401错误。 distributionManagement!-- 发布到 快照版本的仓库即 测试版本仓库 --snapshotRepositoryidsnapshots/idurlhttp://127.0.0.1:8080/nexus-2.6.2/content/repositories/snapshots//url/snapshotRepository!-- 发布到 发行版本的仓库中也可以发布到3rd party 仓库 --repositoryidreleases/idurlhttp://127.0.0.1:8080/nexus-2.6.2/content/repositories/releases//url/repository再次查看仓库组 将已有jar包部署到私服
一、环境准备
本地电脑已安装maven 私服已经搭建好 私服对应仓库和账号权限开启允许 deploy jar 包上去
二、meven私服连接配置
需要在./conf/setting.xml中配置需要远程上传库的地址用户以及密码(如果需要认证)
serversserveridmaven-releases/idusernamezm/usernamepassword123456/password/server
/servers三、使用deploy命令上传
mvn deploy:deploy-file -Dmaven.test.skiptrue -DfileE:\Work\MyWorkspace\idea\office-pdf-util\src\main\resources\libs\aspose-words-16.8.0-jdk16.jar -DgroupIdaspose-words -DartifactIdaspose-words -Dversion16.8.0 -Dpackagingjar -DrepositoryIdmaven-releases -Durlhttp://192.168.0.167:8081/repository/maven-releases如果要在命令行临时指定setting.xml
mvn deploy:deploy-file --settings C:\Users\Liu\.m2\settings-zhiyi.xml -Dmaven.test.skiptrue -DfileE:\Work\MyWorkspace\idea\office-pdf-util\src\main\resources\libs\aspose-words-16.8.0-jdk16.jar -DgroupIdaspose-words -DartifactIdaspose-words -Dversion16.8.0 -Dpackagingjar -DrepositoryIdmaven-releases -Durlhttp://192.168.0.167:8081/repository/maven-releases各参数代表含义为
-Dmaven.test.skiptrue //跳过编译、测试
-DfileD:\work\thirdjar\aspose-words-16.8.0.jar //jar包文件地址,绝对路径
-DgroupIdpri.roy.mvn.test //gruopId--pom坐标自定义
-DartifactIdmvn-api //artifactId--pom坐标自定义
-Dversion //版本号自定义
-Dpackaging //打包方式
-DrepositoryId //远程库ID
-Durl //远程库地址四、结果截图如下 该操作常用来解决的问题
项目依赖第三方jar包但maven中央仓库没有这时可以选择下载后上传私服