简介:Nexus Maven 私有仓库;FTP 服务器配置;SSH 介绍与安装使用
Nexus Maven 私有仓库
安装
Nexus Maven 需要jdk1.8的环境
Sonatype Nexus 提供两种版本Nexus Repository Pro (企业版)/Nexus Repository OSS (社区版)
1 | //下载社区版免费 |
配置
仓库类型
- hosted (宿主):宿主仓库主要用于存放项目部署的构件,或者第三方构件用于下载
- proxy (代理):代理仓库就是对远程仓库的一种代理,从远程仓库下载构件或插件,然后缓存到Nexus仓库中
- group (仓库组):对我们已经配置完了的仓库的一种组策略
Nexus内置的几种仓库说明
- maven-central:策略为Release、代理中央仓库、只会下载和缓存中央仓库中的发布版本构件。
- maven-releases:策略为Release的宿主仓库、用来部署组织内部的发布版本内容。
- maven-snapshots:策略为Snapshot的宿主仓库、用来部署组织内部的快照版本内容。
- maven-public:该仓库将上述所有策略为Release的仓库聚合并通过一致的地址提供服务。
- nuget-hosted:用来部署nuget构件的宿主仓库
- nuget.org-proxy:代理nuget远程仓库,下载和缓冲nuget构件。
- nuget-group:该仓库组将nuget-hosted与nuget.org-proxy仓库聚合并通过一致的地址提供服务。
配置访问的地址一般为 maven-public 组
maven-public 为对我们开发中提供的url,点击copy,会出现访问地址
http://192.168.253.104:8081/repository/maven-public
配置一个新的aliyun-proxy仓库
由于阿里的maven仓库比maven central的要快很多,所以我们可以配置一个新的仓库
http://maven.aliyun.com/nexus/content/groups/public 这个是阿里的仓库地址
然后再public组里面讲这个aliyun-proxy仓库加入,排在maven-central之前即可。
配置文件存储Blob Stores 可供仓库上传文件使用
本地setting.xml
1 | <?xml version="1.0" encoding="UTF-8"?> |
项目中配置
一般而言,项目中使用经过以上配置的本地maven,在进行包依赖下载的时候,会自动从192.168.253.104上进行下载,如果104上没有,那么104会从远程仓库中获取,然后供内网下载
- 发布本地项目到私有仓库中
- distributionManagement 节点中,有两个子节点repository/snapshotRepository 一个是快照仓库,一个是正式仓库,在项目中添加了distributionManagement,项目在调用mvn:deploy 的时候就会更加当前项目的版本(判断项目版本号是否包含-SNAPSHOT)发布到不同的仓库中
- 两个子仓库的地址来源于私有仓库中,快照,正式地址,id必须跟setting中配置的server一致
- 如果项目是快照版本,deploy时,会根据时间戳生成jar,不用该版本号
- 如果项目是releases版本,生成的jar,默认是不允许被覆盖的,所以可通过修改版本号发布
1 | <project> |
- 如果需要发布源码到私有仓库
在plugins中,增加两个插件,然后默认的deploy,会同时将源码发布到私有库中
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<!-- 编译源代码插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<!-- 打包源代码插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
FTP 服务器配置
安装vsftpd
1
2
3
4
//检查是否安装vsftpd
rpm -qa | grep vsftpd
//没有就安装vsftpd
yum -y install vsftpd
配置 /etc/vsftpd/vsftpd.conf
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
############全局设置(YES-是)########
#是否可写入
write_enable=YES
#是否可下载
download_enable=YES
#设置是否以standalone(独立的服务)模式运行
listen=YES
#设定支持ASCII模式的上传和下载功能
ascii_upload_enable=YES
ascii_download_enable=YES
#设置被动模式的端口范围
pasv_min_port=10050
pasv_max_port=10060
############匿名用户登录############
#匿名访问YES-允许
anonymous_enable=YES
#匿名访问是否能上传文件
anon_upload_enable=NO
#匿名用户是否有新增目录权限
anon_mkdir_write_enable=NO
#匿名用户上传文件的权限值
#anon_umask=077
#匿名用户HOME路径
anon_root=/var/ftp
############本地用户设置############
#设定本地用户是否可访问
local_enable=YES
#本地用户上传文件的权限值
local_umask=022
#本地用户上传的文件权限
file_open_mode=0755
############虚拟用户设置############
#虚拟用户使用PAM认证方式,PAM将根据/etc/pam.d/vsftpd进行认证
pam_service_name=vsftpd
#设定启用虚拟用户功能
guest_enable=YES
#虚拟用户权限YES-与本地用户相同,NO-与匿名用户相同
virtual_use_local_privs=YES
#用户不能离开主目录(YES-不能,NO-可以)
chroot_list_enable=YES
#用户列表
chroot_list_file=/etc/vsftpd/vuser_passwd.txt
#设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径
user_config_dir=/etc/vsftpd/vuser_conf
安装 Berkeley DB工具
- yum install db4 db4-utils
- 创建用户密码文本/etc/vsftpd/vuser_passwd.txt ,奇行是用户名,偶行是密码
- db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
编辑/etc/pam.d/vsftpd,全部注释掉原来语句
1
2
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
vim /etc/sysconfig/iptables 防火墙,并重启
1
2
3
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050:10060 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
在文件夹 /var/ftp/
ftp 的权限设置 755
ftp 下建立一个 777 的文件夹upload
重启
- service vsftpd restart
(如果还是不能上传文件)关闭SELINUX
1
2
3
4
setenforce 0
or
vim /etc/sysconfig/selinux
SELINUX=disabled
SSH
ssh 介绍
- openssl 不是协议,而是对协议的实现,SSL/TLS 才是协议。
- openssh 利用 openssl 提供的库。openssl 中也有个叫做 openssl 的工具,是 openssl 中的库的命令行接口。
openssh版本协议
- openssh V1:存在安装漏洞,现已不再采用
- openssh V2:现在推出的RHEL系列版本默认采用的版本协议
openssh命令
- ssh -V (查看版本号)
- ssh root@192.168.253.102 (ssh 远程登录,需要密码验证)
- service sshd restar/stop/start
ssh 配置文件
- 位置:/etc/ssh/sshd_config
- 修改端口:Port 22(默认为22,建议自定义)
scp (两台主机直接复制数据,加密传输)
- rpm -qf
which scp
(检查是否安装) - scp hhh.text root@192.168.253.102:/export/ (将本地当前目录下的hhh.text 文件复制到远程/export/)
ssh 免密码登录
1 | ssh-keygen -t rsa |
注: 登录日志可查看的文件 /var/log/secure
Git 私有仓库安装
待补充
Git 之 ssh
待补充
注: i386 简单理解就是是32位的amd64 是64位的版本,因为是amd把64位率先引进桌面系统的,英特尔也是要追随amd并且保持兼容,一般在软件包里包含这样的字符