在Nexus仓库中存储二进制文件是否可行?

15

在我的工作中,所有的开发都使用Java技术,并且我们使用Nexus来管理Maven仓库。但是对于一个新项目,构建需要dll和exe文件。是否可以将这些Windows二进制文件放入Nexus存储库中?是否有插件可以使这更简单?我正在尝试做的事情是不是疯狂的?

1个回答

15

我使用Nexus来存储从互联网下载的所有二进制依赖项。

您可以使用Nexus GUI上传文件,也可以使用以下Maven命令行:

mvn deploy:deploy-file \
    -Durl=$REPO_URL \
    -DrepositoryId=$REPO_ID \
    -DgroupId=org.apache.maven \
    -DartifactId=maven \
    -Dversion=2.2.1  \
    -Dpackaging=zip \
    -Dfile=maven.zip

这将自动生成您的zip包的POM。

要检索依赖关系,您可以直接导航到Nexus URL,或使用类似ivy的通用依赖管理工具:

java -jar ivy.jar -dependency org.apache.maven maven 2.2.1 -retrieve [artifact].[ext]

我有一个没有 .zip.tar.gz 扩展名的文件。现在,我想将该文件原样发布到 Nexus。是否有选项可以将没有扩展名的文件发布到 Nexus?我尝试使用以下选项进行发布 -Dpackaging="" 和不带 -Dpackaging 进行发布。观察到以下错误:00:01:28.828 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file (default-cli) on project standalone-pom: The artifact information is incomplete or not valid: 00:01:28.828 [ERROR] [0] 'packaging' is missing. - rameshthoomu
1
@RBT打包是发布工件时必须包含的重要元数据。错误消息表明您的存储库需要此元数据。您不想包含打包的原因是什么?软件包存储库不太可能转换文件格式。 - Mark O'Connor
3
@MarkO'Connor,我和@rameshthoomu有同样的问题 - 我们想将使用TeamCity构建的二进制文件发布到Nexus上的Maven仓库中,以便我们的生产部署工具可以获取它们。由于它们是ELF二进制文件,没有扩展名,packaging类型应该是什么? - Steve Lorimer
@SteveLorimer 我认为打包是二进制的,打包类型应该是 bin。几秒钟前我安装了一个打包设置为 pdf 的 PDF 文件,所以看起来 Maven 接受任意的打包类型。 - ahoffer
我遇到了一个错误:“...在此目录中没有POM”,我需要引用参数,请参见https://dev59.com/jGQo5IYBdhLWcg3wE74J#16349133。 - crowne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接