Maven仓库搭建(一):一台HTTP服务器即可(Tomcat、Apache或Nginx)
来源:互联网 发布:apache ant 安装 编辑:程序博客网 时间:2024/04/29 23:27
转载自:http://blog.csdn.net/xiao__gui/article/details/52625660
作为一个Java老程序员,多多少少都会有一些自己写的各种常用代码,如果每写一个项目都把这些代码拷贝一份到新项目比较麻烦的,打成jar包引入到项目会方便很多。如果想让这些jar包能通过Maven引入进项目,那就需要搭建Maven仓库。
说到Maven仓库搭建,很多人第一想到的一般都是Nexus。Nexus的确是非常好的方案,但是总归需要一台服务器,一台服务器需要花钱买和花时间维护,成本比较大。Nexus一般是公司用的比较多,个人不建议使用。
实际上除了Nexus外,还有很多Maven仓库的搭建方案。例如可以将Maven仓库搭建在GitHub等代码托管平台上,免费。甚至也可以搭建在七牛云、又拍云、阿里云对象存储OSS、腾讯云对象存储服务COS等云存储上,加上CDN可以有很快的下载速度,虽然云存储是收费的,但是一般都有免费额度,例如一个月10G流量,通常来说已经很够用了。
本篇博文主要内容是使用HTTP服务器搭建Maven仓库,用于学习Maven仓库搭建原理,并不是想替代Nexus。在本系列接下来的博文中会讲到如何用代码托管平台(如GitHub)、云存储平台(如七牛、阿里云OSS)来搭建Maven仓库。
Maven仓库搭建原理
首先,Maven有个中央仓库:http://repo.maven.apache.org/maven2/,里面包含很多常用的开源项目的包。
在自己项目的pom.xml文件中加入一个dependency,例如spring框架的一个包:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.1.6.RELEASE</version></dependency>
Maven会将仓库地址、groupId、artifactId、version四个部分拼接起来,得到最终的jar包下载地址:
http://repo.maven.apache.org/maven2/org/springframework/spring-core/4.1.6.RELEASE/spring-core-4.1.6.RELEASE.jar
当然,除了jar包外还有一些其他需要的文件,具体可以查看目录:
http://repo.maven.apache.org/maven2/org/springframework/spring-core/4.1.6.RELEASE/
如果是自己的或公司内部使用的jar包,在中央仓库肯定是没有的,这就需要配置一个自己的repository,指定包的下载地址。
<repository> <id>my-repository</id> <url>http://115.159.216.216:8080/</url></repository>...<dependency> <groupId>com.xxg.cloudstorage</groupId> <artifactId>cloudstorage</artifactId> <version>1.0.0</version></dependency>
同理,此时Maven会根据repository配置的url生成文件下载地址:
http://115.159.216.216:8080/com/xxg/cloudstorage/cloudstorage/1.0.0/cloudstorage-1.0.0.jar
HTTP服务器搭建Maven仓库
有了上面的理论基础,用HTTP服务器搭建Maven仓库就不难了,无非是把所需要的文件按照以上规则放到对应的目录下,HTTP服务器提供下载地址。
首先需要一台服务器,再安装一个HTTP服务器软件,如Tomcat、Apache、Nginx等,任选其一即可。
例如使用Java程序员喜闻乐见的Tomcat,使用Tomcat的webapps/ROOT目录作为Maven仓库的文件存放目录。
jar包部署到仓库
如果想把自己的jar包部署到仓库上供自己或别人引用,只有jar文件是不够的,里面上面Spring仓库的目录可以看到除了jar,还有pom、md5、sha1等各种文件,这些文件都可以通过mvn deploy命令来生成。
方法一:手动部署
在项目的pom.xml中添加:
<distributionManagement> <repository> <id>file-repository</id> <url>file://D:\abc</url> </repository></distributionManagement>
运行mvn deploy命令可以看到在D:\abc目录下生成了目录和各种文件。将整个目录上传到Tomcat的webapps/ROOT,此时在浏览器上访问以下地址即可通过HTTP直接下载jar包:
http://115.159.216.216:8080/com/xxg/cloudstorage/cloudstorage/1.0.0/cloudstorage-1.0.0.jar
方法二:SSH自动部署
如果服务器是Linux服务器,还可以直接通过mvn deploy通过scp方式将整个目录直接传到服务器的Tomcat的webapps/ROOT目录下,省去手动上传文件的步骤。
pom.xml配置服务器地址和文件路径:
<distributionManagement> <repository> <id>my-server</id> <url>scp://115.159.216.216/home/ubuntu/coder/apache-tomcat-8.5.5/webapps/ROOT</url> </repository></distributionManagement><build> <extensions> <extension> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-ssh</artifactId> <version>2.10</version> </extension> </extensions></build>
在Maven的settings.xml中配置服务器的SSH用户名和密码:
<server> <id>my-server</id> <username>root</username> <password>your-password</password></server>
Maven仓库使用
部署完成后,已经可以直接下载jar包,那么就可以在其他项目中通过dependency加入这个包的依赖了。
<repository> <id>my-repository</id> <url>http://115.159.216.216:8080/</url></repository>...<dependency> <groupId>com.xxg.cloudstorage</groupId> <artifactId>cloudstorage</artifactId> <version>1.0.0</version></dependency>
- Maven仓库搭建(一):一台HTTP服务器即可(Tomcat、Apache或Nginx)
- Maven仓库搭建(一):一台HTTP服务器即可(Tomcat、Apache或Nginx)
- Linux平台上搭建apache+tomcat负载均衡集群[一台服务器多tomcat集群模式]
- 在CentOS上基于Apache http服务搭建git远程仓库(一)
- Mac Apache服务器搭建、Tomcat(http)服务器搭建、Tomcat(https)服务器搭建
- Nginx和Tomcat一台服务器配置多个域名
- nginx+tomcat在一台服务器上实现负载均衡
- 在一台服务器运行两个或多个tomcat
- 使用Nexus搭建企业maven仓库(一)
- 一台服务器下启多个Tomcat
- 服务器搭建实践(一)centos7使用nginx+tomcat实现负载均衡
- 一台apache和两台tomcat或resin做负载均衡,要求session跨二级域名
- Tomcat + Nginx 负载均衡配置(一台tomcat宕机响应缓慢的问题)
- PASSION之Nginx+Tomcat集群搭建(一)
- 一台nginx服务器多域名配置
- 一台nginx服务器多域名配置
- 一台nginx服务器多域名配置
- (一)Apache服务器和HTTP协议简介
- 1015. Reversible Primes (20)
- 完成端口(Completion Port)详解 转载来自博客园----- By PiggyXP(小猪)
- IntelliJ IDEA的在线注册码生成页面
- redis key 设计技巧
- 数据结构实验之二叉树三:统计叶子数
- Maven仓库搭建(一):一台HTTP服务器即可(Tomcat、Apache或Nginx)
- GAN对抗网络相关资源
- android APK安全性校验
- RN7_React-Native实战(1)
- 改变UIAlertController的标题、内容的字体和颜色
- 在腾讯云的Linux(ubuntu)安装tomcat的步骤
- opencv3.0在linux下的安装
- CheckStyle-IDEA插件在Android Studio或IntelliJ IDEA的使用
- nginx 502错误原因及解决办法