注册命令如何与Artifactory一起工作,以及如何取消注册一个包
一旦您向Artifactory注册了一个包,在远程存储库中就会添加一个属性:bower.pkg.{package_name}。这个属性的值实际上是远程服务器上包的路径(用户名/package_name)。当您对包执行搜索时(例如使用install、info、search命令),Artifactory会搜索属性bower.pkg。{package_name}并根据属性值创建URL。在Bower端,包信息保存在缓存中。这意味着如果请求的包在缓存中,那么Bower将使用缓存向Artifactory发送包坐标。例如:
对于第一个请求:
bowwer info mypackagetest
鲍尔mypackagetest # *不会被缓存艺术:/ / / mypackagetest # *一同坐席
...
你可以看到坐标不在缓存中Bower正在为这些坐标写not-cached。
对于第二个请求,由于它已经被缓存,返回将使用缓存:
bowwer info mypackagetest
鲍尔mypackagetest # *缓存艺术:/ /吃晚饭/ mypackagetest # 1.3.1
另一点是,由于您在现有包上执行了一个bower register命令,该属性被添加了额外的值。Artifactory不支持这一点。Artifactory将始终使用第一个属性值来创建适当的坐标。
例如,创建一个带有多个标记的包,并在用户alexeiv下部署到我们的服务器。这个属性是用~alexeiv/mypackagetest的值创建的,在运行bower信息时,它工作了:
bowwer info mypackagetest
鲍尔mypackagetest # *不会被缓存艺术:/ / ~ alexeiv / mypackagetest # *
Bower mypackagetest#* resolve art://~alexeiv/mypackagetest#*
Bower mypackagetest#*解析art://~alexeiv/mypackagetest#1.3.1
…
可用版本:
——1.3.1
1.3.0——版本
- - - - - - 4
- - - - - - 1.2.3
- - - - - - 1.2.2
- - - - - - 1.2.0
我们更改了存储库,所以现在它在sup/mypackagetest下。我们再次运行bower register命令,属性更新为附加值sup/mypackagetest。现在我们运行bower info命令。它失败了,因为它去了之前的坐标:
bowwer info mypackagetest
鲍尔mypackagetest # *缓存艺术:/ / ~ alexeiv / mypackagetest # 1.3.1
Bower mypackagetest#*验证1.3.1针对艺术://~alexeiv/mypackagetest#*
bower EREQUEST请求http://localhost:9090/artifactory/api/bower/bower-stash/refs/~alexeiv/mypackagetest返回404状态代码。
如您所见,Bower仍然使用缓存。我们运行凉亭缓存清理命令并再次运行bower info,但是仍然得到相同的结果:
bowwer info mypackagetest
Bower mypackagetest#* not-cached art://~alexeiv/mypackagetest#*
Bower mypackagetest#* resolve art://~alexeiv/mypackagetest#*
对http://localhost:9090/artifactory/api/bower/bower-stash/refs/~alexeiv/mypackagetest的请求返回404状态码。
这是因为同一个包名有多个值。一旦我们删除了旧值并再次清理了凉亭缓存,它就工作了:
bowwer info mypackagetest
Bower mypackagetest#*未缓存的艺术://sup/mypackagetest#*
Bower mypackagetest#*解析art://sup/mypackagetest#*
Bower mypackagetest#*解析art://sup/mypackagetest#1.3.1
....
可用版本:
——1.3.1
1.3.0——版本
- - - - - - 4
- - - - - - 1.2.3
- - - - - - 1.2.2
- - - - - - 1.2.0
如果bower安装仍然转到旧的注册表,您将需要从远程存储库的属性中删除旧的值(可以在Artifactory UI→Artifacts→repository name→properties选项卡中完成)。您还需要运行bowwer缓存清理。完成这些操作后,您将能够运行bower info命令。