Here is the Maven Repository我正在尝试使用它。我的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存储库?
谢谢!
答案 0 :(得分:0)
应该有一个[且只有一个]工件可通过坐标[group-id,artifact-id,version]进行寻址。
这些特定于平台的工件可能已手动推入存储库,无法通过预期的maven依赖关系POM元素单独引用。
最简单的短期解决方案是手动提取依赖项/依赖项,并在本地存储库中使用自己唯一的maven坐标安装每个依赖项/依赖项。然后使用项目POM中元素的本地坐标来引用该工件。
不幸的是,maven无法自动检测并下载远程仓库中较新版本的工件。
长期解决方案是向外部依赖项目的守护者提出请求,要求他们重新考虑如何识别和安装特定于平台的工件。