Deployment Nexus或Artifactory可以存储简单的tar.gz工件吗?
我的云服务器位于世界各地不同的数据中心。每个数据中心都是独立的 我正在寻找一种简单的方法,将工件轻松、一致地部署到每个区域的各个服务器集群(可能运行不同版本的软件,例如开发、测试和生产集群)。在我看来,我需要一个工件服务器,因为我可以在云服务器上执行一个安装脚本,这会拉下正确的软件工件 现在,我在运营部工作。我不关心构建,也不关心管理软件构建依赖关系。我只是想要一个工件服务器,在那里我可以存储我的包的所有不同版本,以便以后访问。更重要的是,我要存储几种不同类型的工件Deployment Nexus或Artifactory可以存储简单的tar.gz工件吗?,deployment,nexus,artifactory,artifacts,Deployment,Nexus,Artifactory,Artifacts,我的云服务器位于世界各地不同的数据中心。每个数据中心都是独立的 我正在寻找一种简单的方法,将工件轻松、一致地部署到每个区域的各个服务器集群(可能运行不同版本的软件,例如开发、测试和生产集群)。在我看来,我需要一个工件服务器,因为我可以在云服务器上执行一个安装脚本,这会拉下正确的软件工件 现在,我在运营部工作。我不关心构建,也不关心管理软件构建依赖关系。我只是想要一个工件服务器,在那里我可以存储我的包的所有不同版本,以便以后访问。更重要的是,我要存储几种不同类型的工件 Shell脚本 Pytho
- Shell脚本
- Python脚本
- 傀儡舱单
- Debian文件(通常作为多个Debian的tar.gz文件提供)
Nexus或Artifactory可以管理所有这些类型的软件包吗,或者我应该换一个方向看吗?我不反对将make文件添加到只生成tar.gz文件的shell脚本项目中。我只是不想去建立一个工件存储库,最终,一点脚本、wget和apache服务器就可以了。是的,你可以上传非jar文件。例如:
mvn deploy:deploy-file -DgroupId=org.group.id -DartifactId=artifact-id -Dversion=0.0.0.1-SNAPSHOT -Dpackaging=tar.gz -DrepositoryId=repository-id -Durl=http://url -Dfile=localfile-0.0.0.1-SNAPSHOT.tar.gz
较新版本的Nexus将通过验证某些文件(如tar、swf和其他文件)的格式是否正确来处理它们。但这可能会导致意外或不必要的行为
这是最好的方式去。。。只有您可以根据您的用例说。工件改变的频率、网络延迟等因素可以决定策略的成败
参考文献:
Artifactory和Nexus都可以处理任何类型的文件,因为它们都是二进制存储库管理器 尽管如此,Nexus在技术上可以存储任何文件,但缺乏对不符合Maven存储库布局的二进制文件的支持。例如,这些文件将不会被索引,也无法在搜索中检索;此外,如果非Maven工件在其路径中阻碍了模块信息,那么当前Artifactory是唯一可以利用该信息并允许对工件进行基于版本的操作的存储库(例如,下载最新版本查询) 尽管这两种工具都是从解决世界上的一个问题开始的,但智能二进制管理的需求已经在许多其他领域得到了认可 二进制文件确实需要一个专门的管理器,尽管网络共享/SCM/文件服务器在一开始似乎是一个可行的选择;它们只是不缩放
另请参见管理者相对于其他临时解决方案的一些好处。如果您想使用curl,请尝试以下方法:您可以(参见其他答案)。例如,您也可以这样引用它们(不过最好举个例子): 您可以像此插件一样引用/使用它们:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.apache</groupId>
<artifactId>activemq-distro</artifactId>
<version>5.7.0</version>
<type>gz</type>
<overWrite>true</overWrite>
<outputDirectory>${project.build.directory}</outputDirectory>
</artifactItem>
</artifactItems>
<!-- other configurations here -->
</configuration>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
maven依赖插件
复制
包裹
复制
org.apache
activemq发行版
5.7.0
广州
真的
${project.build.directory}
Nexus 3的解决方案
首先在Nexus中创建原始存储库:
然后您可以在maven中使用它,或者通过curl使用它
示例通过curl:
curl -v --user '$NEXUS_REGISTRY_USER:$NEXUS_REGISTRY_PASSWORD' --upload-file ./my_artifact.tar.gz $NEXUS_GENERAL_REPOSITORY_URL/general-raw/my-project/my_artifact.tar.gz
更多信息