remmina安装和使用(Linux)
拒绝花里胡哨
Arch Linux \ Manjaro Linux
1 | sudo pacman -S remmina libfreerdp freerdp |
libfreerdp freerdp
是远程 windows
使用的包
本文地址 rdesktop安装和使用(Linux)
拒绝花里胡哨
1 | sudo pacman -S remmina libfreerdp freerdp |
libfreerdp freerdp
是远程 windows
使用的包
本文地址 rdesktop安装和使用(Linux)
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
-C: 指定目录
下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-x是解开的意思
压缩
tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress制定压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux
解压
tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar –xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
总结
1、*.tar 用 tar –xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar –xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar –xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar –xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压
上一篇文章Docker从0安装MySql8(Linux)欢迎阅读。
默认自己已经会用 Docker
并且已经使用了国内源。
1 | sudo docker search postgresql |
1 | sudo docker pull postgres |
这里下载好的镜像为最新版的 PostgreSql
Downloaded newer image for postgres:latest
1 | # 创建容器 |
查看文件在容器内的位置,进入容器之后,一般就在下面目录中
1 | cd /var/lib/postgresql/data/ |
1 | sudo docker cp postgres:/var/lib/postgresql/data/pg_hba.conf /home/maxzhao/soft/postgresql/ |
1 | sudo docker cp /home/maxzhao/soft/postgresql/pg_hba.conf postgres:/var/lib/postgresql/data/ |
1 | sudo docker commit -m "描述内容" -a "maxzhao" postgres postgres:latest |
其中,-m 来指定提交的说明信息,跟我们使用的版本控制工具一样;-a 可以指定更新的用户信息;之后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。
创建成功后会返回这个镜像的 ID 信息。
1 | docker ps |
1 | sudo docker images |
1 | sudo docker start mysql |
docker run 只在第一次运行时使用,将镜像放到容器中,以后再次启动这个容器时,只需要使用命令docker start 即可。
推荐:
当前 ArchLinux
的安装需要有一定的基础,如果基础薄弱,可以选择其它容易上手的发行版,先试试。
比如 Manjaro Linux
,这里也有详细的安装介绍
此处安装为 UEFI + GPT
安装。
这里可能还要抨击一下 时间在 2019年之前的所有的安装教程,他们写的都不对
略过。
可以参考U盘安装manjaro
U盘启动选择第一项直接启动,这里不需要过多的操作。
这里选择的联网方式为手机USB 联网,手机直接用 USB 共性网络,然后在命令行执行
1 | dhcpcd |
如果有响应则 ctrl + c
取消。
附:如果像我一样是个新手,并且还想体验“高深”技术的乐趣,那么最好不要搞那些花里胡哨的操作,因为系统会崩溃,然后会造成重装,其实多重装几次也是不错的,我自己重装了五六次,现在都不要看文档就可以装了。
编辑
1 | sudo vim /etc/pacman.d/mirrorlist |
然后在开头写入
1 | Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch |
然后刷新
1 | sudo pacman -Syy |
这里只解释用单独硬盘打分区(UEFI+GPT
)
我们选择 2 个分区,
1 | lsblk # 查看硬盘 |
分区还是很简单的,下面是格式化
1 | mkfs.fat -F16 /dev/sda1 # sda 是上面我们使用的硬盘 |
1 | mount /dev/sda2 /mnt # sda 是上面我们使用的硬盘 |
这里需要大量的流量,如果使用 USB 共享网络,建议连WIFI
1 | pacstrap -i /mnt base base-devel linux linux-firmware |
其中
base base-devel
是基础linux linux-firmware
是内核fstab
1 | genfstab -U /mnt >> /mnt/etc/fstab |
如果我们多次格式化硬盘,需要重新生成 fstab
,防止 硬盘的 UUID
不同。
1 | arch-chroot /mnt |
vim
1 | pacman -S vim |
1 | vim /etc/locale.gen |
开头写入 或者找到注释掉的此代码,删除注释
1 | en_US.UTF-8 UTF-8 |
刷新
1 | locale-gen |
执行
1 | ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
设置硬件时间
1 | hwclock --systohc --utc |
1 | pacman -S dosfstools grub efibootmgr |
如果还有 Windows
还需要安装
1 | pacman -S os-prober |
1 | grub-install --target=x86_64-efi --efi-directory=/boot/EFI --recheck |
grub.cfg
1 | grub-mkconfig -o /boot/grub/grub.cfg |
1 | passwd #设置管理密码 |
sudo
权限1 | vim /etc/sudoers |
在 root ALL=(ALL) ALL
下面添加maxzhao ALL=(ALL) ALL
1 | pacman -S dhcp dhcpcd net-tools NetworkManager |
1 | exit |
重启之后,root
登录,还是继续使用手机USB
共享,方便。
1 | systemctl enable dhcpcd |
手机共享网络之后
1 | dhcpcd |
基础安装到此结束,下面安装 GNOME 界面
下面开始安装图形界面
首先是装Xorg
pacman -S xorg xorg-server xorg-xinit
pacman -S xf86-input-synaptics
1 | lspci | grep VGA |
1 | pacman -S nvidia |
也可以如下
intel
pacman -S xf86-video-intel
英伟达
pacman -S xf86-video-nv
gnome桌面只要安装gnome包即可,还有一个 gnome-extra
包可以提供额外的常用软件和几个游戏,你可以安装时选择你要的软件,没有必要全选,当然也可以不装这个包,我这里只选了 gnome-tweak-tool
这个工具
pacman -S gnome gnome-extra gnome-tweak-tool
然后安装gdm
登录管理器
pacman -S gnome gdm
将 gdm
设置为开机自启动,这样开机时会自动载入桌面
systemctl enable gdm
打开 vim /etc/pacman.conf
,在末尾加上
1 | [archlinuxcn] |
或者
1 | [archlinuxcn] |
然后安装 key
1 | sudo pacman -S archlinuxcn-keyring |
没有中文字体,就不能使用gnome-terminal
1 | sudo pacman -S wqy-microhei ttf-dejavu wqy-zenhei wqy-microhei wqy-bitmapfont adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts |
1 | fc-cache -fv |
1 | sudo pacman -S fcitx |
1 | sudo pacman -S fcitx-sogoupinyin |
1 | sudo pacman -S fcitx-configtool |
vim ~/.xprofile
1 | export GTK_IM_MODULE=fcitx |
1 | sudo pacman -S fcitx-googlepinyin |
对于特定用户,还可以在
~/.bashrc
、~/.xinitrc
或~/.xprofile
中设置自己的用户环境。不同之处在于:
- .bashrc: 每次终端登录时读取并运用里面的设置。
- .xinitrc: 每次startx启动X界面时读取并运用里面的设置
- .xprofile: 每次使用gdm等图形登录时读取并运用里面的设
Yaourt
是archlinux
方便使用的关键部件之一,但没有被整合到系统安装中的工具。建议在装完系统重启之后,更新完pacman
和基本系统之后,就安装这个工具。
最简单安装 Yaourt
的方式是arclinuxcn源
1 | pacman -Syu yaourt |
这里我使用的 numix-circle
图标包,这个图标包在 aur
里,直接用yaourt
即可
pacman -S numix-circle-icon-theme-git
然后在 gnome-tweak-tool
里启用主题
输入以下指令
1 | curl -L -O http://archibold.io/sh/archibold |
重启后gdm就会变成你要的背景
首先在gnome-tweak-tool
里的拓展
里启用User themes
然后安装主题,这里我是用的贴吧的@Air_Wawei
的Air
主题,并自己做了些修改。
首先下载主题 然后解压,将Air文件夹放到/usr/share/themes/
文件夹里,在gnome-tweak-tool
里启用主题
shell拓展请进入https://extensions.gnome.org/自行按照说明安装
1 | sudo pacman -S screenfetch |
要让screenfetch
在打开终端是自动输出,在~/.bashrc
里加入
screenfetch
效果如
1 | -` |
花里胡哨,没有任何意义
不如直接加上 set nu
,给命令行编辑文本添加行号。
这里有一个 gentoo-bashrc
1 | yaourt gentoo-bashrc |
MacOS
一样的 dock
1 | sudo pacman -S dash-to-dock |
这里我失败了,显示错误:未找到目标:dash-to-dock
但是 dock
却出现在了我的屏幕左边!!!
原因:可能是开启了一些自启服务,可以到目录
/etc/systemd/system/multi-user.target.wants
下查看。
可以使用systemctl disable XXX服务
关闭当前服务的自启。
vim 是我比较喜欢但又不熟练的编辑器, 我虽然已经不是初学 vi , 但遇到不会的命令还是喜欢执行一下vimtutor
或者 vimtutor zh
, 这会让我豁然开朗.
也可以传统的分为
在命令模式下执行:
a
: 在光标后插入o
: 在当前行后插入一个新行O
: 在当前行前插入一个新行cw
: 替换从光标所在位置后到一个单词结尾的字符在命令模式下执行:
0
: 数字零,到行头^
: 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)$
: 到本行行尾/pattern
搜索 pattern
的字符串,n下一个,N上一个[n]G
: 到第 N 行 (陈皓注:注意命令中的G是大写的,另我一般使用 : N 到第N行,如 :137 到第137行)gg
: 到第一行。(陈皓注:相当于1G,或 :1)G
: 到最后一行。w
: 到下一个单词的开头(下划线,数字分割)。e
: 到下一个单词的结尾(下划线,数字分割)。W
: 到下一个单词的开头(空格)。W
: 到下一个单词的结尾(空格)。P
: 当前位置之前粘贴
p
: 当前位置之后粘贴
y
: 复制可视模式下选中的文本
yy
or Y
: 拷贝当前行当行于
y[n]w: 复制一(n)个词。 备注: 所有的 w 都代表一个单词,比如 命令行的 ctrl + w 消除一个单词
y[n]l: 复制光标右边1(n)个字符。
y[n]h: 复制光标左边1(n)个字符。
[n]x: 剪切光标右边n个字符,相当于d[n]l。
[n]X: 剪切光标左边n个字符,相当于d[n]h。
d[n]w: 删除(剪切)1(n)个单词
d[n]l: 删除(剪切)光标右边1(n)个字符。
d[n]h: 删除(剪切)光标左边1(n)个字符。
d0: 删除(剪切)当前位置到行首的内容
[n] dd: 删除(剪切)1(n)行。
:m,nd
:e <path/to/file>
: 打开一个文件:w
: 存盘:q!
: 退出不保存 :qa!
强行退出所有的正在编辑的文件,就算别的文件有更改。:wq
: 保存并推出:saveas <path/to/file>
: 另存为 <path/to/file>
:x
, ZZ
或 :wq
: 保存并退出 (:x
表示仅在需要时保存,ZZ不需要输入冒号并回车):bn
和 :bp
: 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。上面的操作都可以配合n使用,比如在正常模式(下面会讲到)下输入3h, 则光标向左移动3个字符。
使用标记可以快速移动。到达标记后,可以用Ctrl+o返回原来的位置。 Ctrl+o和Ctrl+i 很像浏览器上的 后退 和 前进 。
注意,类似cnw,dnw,ynw的形式同样可以写为ncw,ndw,nyw。
y, d, c, v都可以跟文本对象。
可以用grep或vimgrep查找一个模式都在哪些地方出现过,
其中:grep是调用外部的grep程序,而:vimgrep是vim自己的查找算法。
用法为: :vim[grep]/pattern/[g] [j] files
g的含义是如果一个模式在一行中多次出现,则这一行也在结果中多次出现。
j的含义是grep结束后,结果停在第j项,默认是停在第一项。
vimgrep前面可以加数字限定搜索结果的上限,如
:1vim/pattern/ % 只查找那个模式在本文件中的第一个出现。
其实vimgrep在读纯文本电子书时特别有用,可以生成导航的目录。
比如电子书中每一节的标题形式为:n. xxxx。你就可以这样:
:vim/^d{1,}./ %
然后用:cw或:copen查看结果,可以用C-w H把quickfix窗口移到左侧,
就更像个目录了。
还有一种比替换更灵活的方式,它是匹配到某个模式后执行某种命令,
语法为 :[range]g/pattern/command
例如 :%g/^ xyz/normal dd。
表示对于以一个空格和xyz开头的行执行normal模式下的dd命令。
关于range的规定为:
高级的查找替换就要用到正则表达式。
:help pattern得到更多帮助。
g ^g可以统计文档字符数,行数。 将光标放在最后一个字符上,用字符数减去行数可以粗略统计中文文档的字数。 以上对 Mac 或 Unix 的文件格式适用。 如果是 Windows 文件格式(即换行符有两个字节),字数的统计方法为: 字符数 - 行数 * 2。
我们可以一次打开多个文件,如
1 vi a.txt b.txt c.txt
如果支持鼠标,切换和调整子窗口的大小就简单了。
这里是 滇狐总结的比较高级的vi技巧。
让vim 正确处理文件格式和文件编码,有赖于 ~/.vimrc的正确配置
大致有三种文件格式:unix, dos, mac. 三种格式的区别主要在于回车键的编码:dos 下是回车加换行,unix 下只有 换行符,mac 下只有回车符。
下面的括号匹配对编程很实用的。
有时一个tag可能有多个匹配,如函数重载,一个函数名就会有多个匹配。 这种情况会先跳转到第一个匹配处。
tab键补齐
Gtags综合了ctags和cscope的功能。 使用Gtags之前,你需要安装GNU Gtags。 然后在工程目录运行 gtags 。
vim提供了:make来编译程序,默认调用的是make, 如果你当前目录下有makefile,简单地:make即可。
如果你没有make程序,你可以通过配置makeprg选项来更改make调用的程序。 如果你只有一个abc.Java文件,你可以这样设置:
1 | set makeprg=javac\ abc.java |
然后:make即可。如果程序有错,可以通过quickfix窗口查看错误。 不过如果要正确定位错误,需要设置好errorformat,让vim识别错误信息。 如:
1 | :setl efm=%A%f:%l:\ %m,%-Z%p^,%-C%.%# |
%f表示文件名,%l表示行号, %m表示错误信息,其它的还不能理解。 请参考 :help errorformat。
其实是quickfix插件提供的功能, 对编译调试程序非常有用 :)
快速修改窗口在make程序时非常有用,当make之后:
当弹出补全菜单后:
normal模式下按:进入命令行模式
本文地址 Vim操作记录
在我们的WEB
项目中,会写很多很多接口,对于增删改的接口来说,都大致相同。所以在我们的项目中就可以使用通用接口的形式实现增删改。
最终实现是以Entity
与 EntityManager
对数据库进行操作。
这里使用SpringBoot JPA
实现通用接口的 删除 功能。其它 Spring
等项目思路大致相同。
其它 :
我把实体类、SQL
、部分说明等放在了最后。
这里还要参考我的上一篇文章SpringBoot Jpa实体继承通用属性。
BaseController
实现BaseController
是我们项目中实现通用接口的基础类。
Service
、Repository
都省略了接口类,测试的话自己写一下。
1 | /** |
1 | @Slf4j |
1 |
|
至此,一个简单的、通用的删除接口就完成了。
删除是比较简单的,因为我做的项目一般都是逻辑删除,所有必须要自定义删除,而且想通用,就需要通用的实体属性,所以也就有了BaseEntity
。
BaseEntity
解读这个类就是我前言中提到的通用实体属性的父类,这样就可以统一实体的通用属性,比如主键、逻辑删除状态、添加时间等。
@MappedSuperclass
实体继承映射注解要加载实体的父类上,比如如下代码:
1 | /** |
@DynamicInsert
在实体类的父类上时,是不会对子类的属性产生效果的,对父类自己的属性也没有效果。
1 | @Api(value = "应用接口日志") |
1 | /** |
1 | /** |
1 | create table gt_boot.app_log_api |
@PostConstruct
解读从Java EE5规范开始,Servlet中增加了两个影响Servlet生命周期的注解:
@PostConstruct
@PreDestroy
修饰一个非静态的void()
方法类似与init()
destory()
类似。写法有如下两种方式:
1 | @PostConstruct |
想要把实体AppLogApi.class
传参到BaseRepositoryImpl
中,就需要初始化bean
之后才可以调用bean
,但是@Autowired
注入是发生在A的构造方法执行完之后的。
所以要在生成对象时初始化AppLogApi.class
参数,就不能在构造函数中实现,这时候@PostContruct
的作用就体现出来了, @PostContruct
会在依赖注入完成后被自动调用。
Constructor > @Autowired > @PostConstruct
RabbitMQ是一个出色的消息代理中间件(Message Broker):接受和转发消息。你可以将它看作是一个邮局,
你把自己的信件写上收件人地址,然后放到邮筒里面就不用管了,由邮局负责将这个信件送到目的地。来自
ArchLInux
1 | sudo pacman -S rabbitmq |
1 | # 先安装erlang |
1 | sudo rabbitmq-plugins enable rabbitmq_management |
1 | # 设置开机自启服务 |
1 | vim /etc/rabbitmq/rabbitmq.config |
安装好之后在/usr/share/doc/rabbitmq-server-3.6.15/
有参考模板rabbitmq.config.example
配置端口,备注:消息端口5672
,则web访问端口为 15672
1 | [ |
1 | # 修改guest的密码 |
1 | # 查看帮助 |
1 | sudo rabbitmqctl add_vhost maxzhaoTest |
我这里使用的是 Typora .一个符合我的需求的 Markdown 编辑器.
奈何对于图片的处理, 很是麻烦,所以我选择搭建自己的图床.
网上的方案大致如下:
仔细考虑下还是使用 GitHub , 本身倾向于 Gitee 毕竟国内访问速度很快, 奈何 Gitee 推送后不能自动更新. 囧
七牛云也是很不错的选择, 奈何需要备案.
![新建 token](/uploads/images/新建 token.png)
输入 note , 如果当前token 只有自己用的话,可以把权限全部选上.
注:创建成功后,会生成一串token,这串token之后不会再显示,所以第一次看到的时候,就要好好保存
![](https://maxzhao-it.github.io/upload/img/新建 token.png)
PicGo 就是一款图片上传工具, 支持微博图床
,七牛图床
,腾讯云
,又拍云
,GitHub
等图床. 可以把本地图片或剪切板上的图片发送给图床, 返回 URL 到哪都可以使用.
PicGo
yaourt -S picgo-appimage
https://www.jianshu.com/p/2756724a5dee
推荐:
1 | tar -zxvf nexus-3.16.0-01-unix.tar.gz -C /home/maxzhao/soft/ |
1 | cat etc/nexus-default.properties |
1 | # 端口配置 |
1 | cat bin/nexus.vmoptions |
1 | -Xms1200M |
1 | # xxx 是当前 sonatype-work 所在的路径 |
1 | sh bin/nexus start |
原始账号密码为 admin / admin123
;
20210606
更新:原始秘密在 nexus3/etc/admin.password
文件中。
Maven Gentral:该仓库代理Maven中央仓库,其策略为Release,因此只会下载和缓存中央仓库中的发布版本构件。
Release:这是一个策略为Release的宿主类型仓库,用来部署组织内部的发布版本构件。
Snapshots:这是一个策略为Snapshot的宿主类型仓库,用来部署组织内部的快照版本构件。
3rd party:这是一个策略为Release的宿主类型仓库,用来部署无法从公共仓库获得的第三方发布版本构件。
Apache Snapshots: 这是一个策略为Snapshot的代理仓库,用来代理Apache Maven仓库的快照版本构件。
Codehaus Snapshots: 这是一个策略为Snapshot的代理仓库,用来代理Codehaus Maven仓库的快照版本构件。
Google code: 这是一个策略为Release的代理仓库,用来代理Google Code Maven仓库发布版本构件。
java.net Maven2:这是一个策略为Release的代理仓库,用来代理java.net Maven仓库的发布版本构件
Public Repositories:该仓库组将上述所有策略为Release的仓库聚合并通过一致的地址提供服务
Public Snapshot Repositories: 该仓库组将上述所有的策略为Snapshot的仓库聚合并通过一致的地址提供服务。(在nexus-oss-webapp-1.9.2.3 这版本中没有此项)
Maven可以直接从宿主仓库下载构件;maven也可以从代理仓库下载构件,而代理仓库会间接地从远程仓库下载并缓存构件;最后,为了方便,Maven可以从仓库组下载构件,而仓库组没有实际内容,它会转向其包含的宿主仓库或者代理仓库获得市级构件的内容。
创建一个宿主仓库首先单击界面左边导航栏中的Repositories
链接,在右边的面板中,选择create
,接着在下拉菜单中选择maven2 (hosted)
,就会看到如下图的配置界面:
Blob Stores
就是本地的存储目录创建,default
是默认地址,都存储在/xxx/nexus3/sonatype-work/nexus3/blobs/
下 。Access Setting 小组中
Deployment Policy用来配置该仓库的部署策略,选项有只读(禁止部署)、关闭重新部署(同一构件只能部署一次)以及允许重新部署。
Allow file Browsing 表示是否允许浏览仓库内容
Include in Search 表示是否对该仓库进行索引并提供搜索
Publish URL 用来控制是否通过URL提供服务,如果选择false当访问仓库的地址时,会得到HTTP404 Not Found 错误
Not Found Cache TTL
表示当一个文件没有找到后,缓存这一不存在的信息的时间。以默认值1440分钟为例,如果某文件不存在,那么在之后的1440分钟内,如果Nexus再次得到该文件的请求,它将直接返回不存在的信息,而不会查找位呢间系统。
操作和创建宿主仓库类似,主要Repository Type 的值改为proxy 这时看到如下图:
对于代理仓库来说,最重要的是远程仓库地址即
Remote Storage Location,用户必须输入有效的值
Download Remote Indexes 表示是否下载远程仓库的索引
Checksum Policy 配置校验出错时的策略,用户可以选择忽略、记录警告信息或者拒绝下载。
Authentication 当远程仓库需要认证的时候这里的时候,这里的Authentication 配置就能派上用处。
Artifact Max Age 构件缓存最长的时间,对于快照版本来说 Artifact Max Age 默认值为 -1,表示构件混存后就一直保存着,不在重新下载,对于快照版来说默认值为1440分钟表示每隔
Metadata Max Age 仓库元数据文件缓存的最长时间
Http Request Setting 和 Override HTTP proxy Setting 其中前者用来配置Nexus访问远程仓库时HTTP请求参数,后者用来配置HTTP代理
创建仓库组同其他的一样步骤是在选择Repository Group 就会看到如下的:
配置中的信息同其他的一样,仓库组中没有Release 和Snapshot
,这不同于宿主仓库和代理仓库。在配置界面中可以选择Nexus中的仓库,将其聚合成一个虚拟的仓库组,注意,仓库组所包含的仓库的顺序决定了仓库组便利其所含仓库的次序,因此最好将常用的仓库放在前面,当用户从仓库组下载构件的时候,就能经快的访问到包含构件的仓库。
需要搜索Maven 中央库,首先需要设置Nexus中的Maven Central 代理仓库下载远程索引 如下图:
Download Remote Indexes 属性设置为true 默认为false
true是开启,false是关闭 由于中央仓库内容比较多,因此其索引文件比较大,需要查看下载如何了,我们可以单击界面左边导航栏中的 Scheduled Tasks 链接后,就可以看到系统调度的任务其状态为
runing,在说哦因下载完毕之后,该任务就会消失。
Scheduled Tasks 界面:
当需要为项目添加Nexus私服上的public仓库时,可以在项目pom.xml文件配置 代码如下:
1 |
|
这样的配置只对当前的Maven项目有效,实际应用中,我们往往想要通过一次配置就完成能让本机所有的Maven项目都使用自己的Maven私服。这时配置本地仓库setting.xml 代码如下:
1 |
|
日常开发生成的快照版本构件可以直接部署到Nexus中策略为Snapshot的宿主仓库中,项目正式发布的构件则应该部署到Nexus中策略为Release的宿主仓库中。POM.XML配置如下:
1 |
|
Nexus 的仓库对于黎明用户是只读的为了能够部署构件,还需要在setting.xml 中配置认证信息代码如下:
1 |
|
setting.xml配置 server
信息
1 | <servers> |
pom.xml配置
1 |
|
执行mvn脚本
1 | mvn deploy:deploy-file -DgroupId=gt.maxzhao -DartifactId=maxzhao-table -Dversion=1.0 -Dpackaging=jar -DrepositoryId=maxzhao -Dfile=/run/media/maxzhao/study/mycode-java/maxzhao/maxzhao-table/target/maxzhao-table-1.0-SNAPSHOT.jar -Durl=http://127.0.0.1:8081/repository/maxzhao/ |
本文地址:Manjaro下安装Nexus