这是我要使用的Maven存储库。我的pom.xml
的摘要:
<dependency>
<groupId>edu.wpi.cscore.java</groupId>
<artifactId>cscore</artifactId>
<version>1.0.2</version>
</dependency>
运行时,它可以抓住cscore-1.0.2.pom
文件,但随后会搜索不存在的cscore-1.0.2.jar
- 如果您在存储库中查看,则每个JAR是平台特定的,并且相应地命名(例如cscore-1.0.2-linux.jar
)。
我尝试过:
<dependency>
<groupId>edu.wpi.cscore.java</groupId>
<artifactId>cscore</artifactId>
<version>1.0.2</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>edu.wpi.cscore.java</groupId>
<artifactId>cscore</artifactId>
<version>1.0.2-linux</version>
<type>jar</type>
</dependency>
它可以使cscore-1.0.2.pom
罚款,但随后在1.0.2-linux/
目录中查看JAR,这根本不存在。有没有办法告诉Maven,它正在寻找的Jar文件将被命名为其他?还是这根本不是有效的Maven存储库?
谢谢!
应该通过坐标[group-id,artifact-id,version]有一个[和一个]工件。
这些特定于平台的工件可能是手动推入存储库的,并且不能通过预期的Maven依赖性POM元素单独提及。
最简单的短期解决方案是手动提取依赖关系/依赖项,并在本地存储库中安装自己独特的Maven坐标。然后,使用项目的POM中元素的本地坐标参考该工件。
不幸的是,这使得Maven不可能自动检测并下载远程存储库中的文物的较新版本。
长期解决方案是向外部依赖项目的守护者请求,要求他们重新考虑如何识别和安装特定于平台的人工制品。