问题标签 [artifactory]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Artifactory 如何管理存储库
今天早上我花了一些时间下载和试验 Artifactory,并且有一些基本的问题,我似乎在小助手工具提示和官方文档中找不到。
- Artifactory 在哪里存储本地存储库?我创建了一个并且可以看到它,将工件部署到它等等......但我在我的文件系统上的任何地方都看不到它?
- 用户是否可以将存储库“导出”到他们的本地计算机上,并使用它导出的存储库进行复制?(我正在尝试为开发人员配置本地与托管存储库的概念。)
- Artifactory 有一个标准远程存储库列表(例如
java.net.m1
)。如果我设置了具有相同布局的本地存储库,是否可以(可能通过虚拟存储库)将远程存储库“合并”/导入到我自己的存储库中(只要没有冲突)?
我通常不会将多个问题汇总到同一个问题中,但这些问题是如此密切相关,我宁愿将它们组合在一起,而不是将 SO 与多个几乎相同的问题混为一谈。提前致谢!
java - Artifactory 如何管理 Ivy 描述符
我正在尝试让 Artifactory(OSS 版本)首次启动并运行,并成功创建了一个 repo 并将一个工件(joda-time-2.0)部署到它作为测试。
但是当谈到 Ivy 模块描述符(XML 文件)时,我有点困惑:
- 我应该如何命名 XML 文件?我使用的默认工件模式是
[org]/[module]/[baseRev](-[folderItegRev])/[type]s/[module](-[classifier])-[baseRev](-[fileItegRev]).[ext]
提示 Artifactory 将我的 joda JAR 存储到myRepo/joda-time/joda-time/2.0
;模块模式是[org]/[module]/[baseRev](-[folderItegRev])/[type]s/ivy-[baseRev](-[fileItegRev]).xml
,所以我的描述符应该命名ivy-2.0.xml
吗? - Artifactory不应该存储
joda-time-2.0.jar
在下面myRepo/joda/joda-time/2.0/
吗?既然joda
是组织,不是joda-time
吗?我该如何改变? - 如何将 Ivy 文件上传到 repo 中?如果我为文件命名,
ivy-2.0.xml
那么 Artifactory 将如何知道将其放置在 JODA 目录中?
提前致谢!
java - Apache Ivy:指向存储库管理器
我正在尝试将 Ivy 配置为与 Artifactory(一个流行的存储库管理器)很好地配合使用,并且需要确认我正在朝着正确的道路前进。
我假设一旦我在我的存储库服务器上正确配置了 Artifactory,我可以将 Ivy 指向下面的某个目录ARTIFACTORY_HOME
并传递给它与普通 URL 解析器相同的信息。通过这种方式,Artifactory 获得了信息(要处理的命令、用户名和密码等)并代表实际的存储库接管。(因此,如果凭据错误或用户无权兑现请求,Artifactory 会发回 404/等。)
因此,首先,如果这是错误的,请纠正我!
所以这就是我的想法。在我的项目的 Ant 构建中:
然后,在(服务器端)ivy-settings.xml
:
因此,当开发人员的 Ant 构建运行ivy-resolve
目标时,Ivy 客户端知道去哪里找到ivy-settings.xml
文件,并使用developer
我在 Artifactory 中设置的用户和加密密码来配置自己。
唯一的问题是,我不确定在设置文件中为 Ivy & Artifact 模式指定什么?我假设我必须将它们设置为由 Artifactory 控制的某个目录,但我不确定是什么(在 Artifactory 中,我的仓库使用默认的 Ivy 仓库布局)。
另外,我是否像我一样将设置文件放在 repo 服务器上,违反了 Artifactory 的“最佳实践”?我应该把它放在一些 Artifactory 管理的(隐藏)目录中吗?如果是这样,在哪里以及为什么?
最终,代码示例帮助我学习最快和最简单(我是一个图形学习者),因此非常感谢任何朝着正确方向的编程推动!
提前致谢!
java - 在哪里可以找到 Artifactory repo 的 Ivy 描述符
我正在通过 Artifactory 设置我的第一个“托管”常春藤存储库,我想知道我是否必须为我部署的每个工件手动编写所有常春藤描述符 (XML)。
这会很痛苦。
在这些情况下,“真正的”回购管理员会做什么?手写它们?Wrtie 脚本为您生成它们?是否有与 Maven 中央存储库等效的常春藤,我可以从中复制描述符?如果我访问http://mvnrepository.com/并搜索一个 JAR,我会看到它在“Maven”旁边有一个“Ivy”选项卡,但它只包含元素,而不是Ivy 需要<dependency/>
的整个XML 实例。<ivy-module>
maven - 如何从 CLI(不在项目目录中)下载 Maven 工件及其依赖项的 Java 源代码?
注意:maven-dependency-plugin 不适合这里,原因如下
我正在将项目部署到 Artifactory 并附有源代码。我希望能够运行命令来下载和解压缩给定工件及其依赖项的源代码。我将使用它来区分工件的两个版本。
我想做的基本上是这样的:
尝试结合 maven-dependency-plugin 中的几个目标,但这似乎无法满足我的需要:
- :unpack-dependencies需要一个项目
- :get要求我明确指定一个远程仓库。为什么它不能使用我的 settings.xml 中的那些?
我已经尝试编写自己的 mojo 来做到这一点,但我很困惑,因为除非我在项目目录中,否则我似乎无法处理远程存储库。因此我无法下载该项目。即使我下载了项目,mojo 也已经初始化了它的 ${project} 因此我将无法获取它的依赖项等
感谢您的帮助。
java - Artifactory:通过脚本将 Ivy 描述符发布到存储库
已经向我解释过,如果您想让 Artifactory 管理您的存储库(我会这样做),并且如果您不想自己手写 Ivy 描述符(我不这样做),那么您的选择是任何一个:
- 使用 Ivy RoundUp,除了工件本身之外,它还包含 Ivy 描述符;或者
- 编写脚本为您生成描述符;或者
- 编写 XML 转换以在 Maven 和 Ivy 描述符模式之间进行转换
在仔细权衡了我的选择之后,我决定编写一个 Python 脚本来生成这些描述符。我会将我希望部署/安装到我的存储库的所有工件放入一个deploy/
文件夹中,脚本将遍历它在此文件夹中找到的所有工件,向用户查询有关它的信息,然后为我执行部署,对吧在脚本里面。
尽管这最后一个要求不是强制性的,但最好让脚本访问Artifactory的 RESTful API 并在正确的位置为我部署描述符和工件。
此页面解释了 API,并且是我的问题的主题。
PUT
API 公开的唯一基于操作是:
此操作的描述是:
将 XML 元数据附加到项目(文件或文件夹)。
这就是我要找的吗?例如,如果我有一个名为 的 jar my-utils-2.3.jar
,那么我希望能够将它放在deploy/
目录中,并且让我的脚本不仅生成my-utils-2.3-ivy.xml
,而且将这两个项目部署到我的存储库中的正确位置(在这个例如,将是http://localhost:8080/artifactory/my-repo/my/utils/2.3/
)。
如果这不是我想要的,那么 Artifactory 的 API 是否支持我想要的(以及关于此的文档在哪里!)?
而且,如果这是我正在寻找的,那么我有第二个与安全相关的问题。我想保护我所有的存储库。理想情况下,执行此 Python 脚本的用户必须提供 Artifactoryadmin
用户名和密码才能成功执行部署。
但是在这个操作的定义中,我没有看到任何对身份验证的支持!!我是否可以假设 Artifactory 不对 REST 调用进行身份验证?!?
提前致谢!
编辑:
我在 Artifactory/Users old nabble 论坛上找到了以下示例:
这会是我要找的吗?这样,我可以将 PyCurl 用于 curl/libcurl 接口,并且仍然可以实现安全性。如果是这样,那么为什么 curl 要求我进行身份验证,而不是 Artifactory?
artifactory - Artifactory - 虚拟存储库
我计划建立一个人工虚拟回购,它包括所有公共回购和 3 个本地回购。4 个本地存储库基于 3 个团队说 A、B、C。我希望团队 A 仅从本地存储库 A 解决工件,团队 B 仅从存储库 B 解决工件等等。我怎样才能做到这一点?
注意:为了避免维护谁可以访问哪个 repo(团队成员不断在团队之间移动)的痛苦,我已将所有 repo 的访问权限授予所有团队成员。我不想将它们限制在自己的仓库中。
plugins - 在自己的 hudson 插件中使用另一个插件?
我正在开发自己的 hudson 插件,但找不到真正全面的文档。
如何连接到工件插件以获取工件列表?artifactory 插件安装在 hudson 中,但我不知道如何实例化它/从我自己的插件连接到它。
我的插件将特定版本部署到我们的 webstart 服务器。这包括通过 HTTP 从 artifactory 下载工件,创建 version.xml 和 *.jnlp 文件并使用 SCP 将这三个文件上传到网络服务器。对于这个插件的配置,我需要一个来自 artifactory 的特定项目的所有版本的列表。
提前致谢。
java - 点击 Java Web 服务:curl 或 URLConnection
我正在使用在以下 URL 上公开 RESTful API 的 Java 服务器:
文档推荐curl
用于提交简单PUT
请求(文件上传),并强烈建议用户使用与示例中提供的完全相同的参数。所有示例如下所示:
此服务器不能与 FTP 或任何其他正常传输协议一起使用。
我在 SO 上找到了这个问题,其中回答者建议使用java.net.URL
及其伴侣java.net.URLConnection
,而不是尝试使用 curl/libcurl。
我以前从来没有运行过curl
命令,所以我问任何知道 curl 和 Java 的人是否可以使用 URL/URLConnection(或任何其他 Java 框架)而不是 curl 来解决我的具体问题。如果没有,那么我将不得不编写一个从本地命令行/终端执行命令的curl
组件,然后在该组件内执行上述命令,这感觉很丑/讨厌。
如果我可以在 Java 网络 API 中完成同样的事情,我更愿意这样做。
而且,如果它可以在 Java 中完成,我将如何使用 URL/URLConnection 来设置与我提供的示例完全相同的命令参数?具体来说:
-X
PUT
-f
-u admin:password
--data-binary
-@absolute/path/...
在此先感谢您的任何见解或朝着正确的方向轻推!
artifactory - Artifactory - 部分存储库同步
我在两个独立的网络上有两个工件实例。两者根本没有连接,只有一个有互联网连接。
我想将一个存储库与另一个存储库同步。但是,这是手动发生的,如果我每次都必须传输整个存储库,那将非常慢。有没有办法根据日期或类似的东西部分导出存储库?到目前为止,我唯一的线索是我可以通过artifactory 的 rest api访问新的工件。
谢谢。