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