Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 特定于平台的Maven依赖项_Java_Maven - Fatal编程技术网

Java 特定于平台的Maven依赖项

Java 特定于平台的Maven依赖项,java,maven,Java,Maven,我想用的。mypom.xml中的一个片段: <dependency> <groupId>edu.wpi.cscore.java</groupId> <artifactId>cscore</artifactId> <version>1.0.2</version> </dependency> 它获得了cscore-1.0.2.pom很好,但是它在1.0.2-linux/目录中查找JAR,而J

我想用的。my
pom.xml
中的一个片段:

<dependency>
  <groupId>edu.wpi.cscore.java</groupId>
  <artifactId>cscore</artifactId>
  <version>1.0.2</version>
</dependency>
它获得了
cscore-1.0.2.pom
很好,但是它在
1.0.2-linux/
目录中查找JAR,而JAR根本不存在。有没有办法告诉Maven它正在查找的JAR文件将被命名为其他名称?或者这不是一个有效的Maven存储库


谢谢

应该有一个[而且只有一个]工件可通过坐标[组id,工件id,版本]寻址

这些特定于平台的构件可能是手动推送到存储库中的,不能通过预期的maven dependency POM元素单独引用

最简单的短期解决方案是手动提取依赖项/依赖项,并在本地存储库中使用自己独特的maven坐标安装每个依赖项。然后使用项目POM中元素的局部坐标引用该工件

不幸的是,这使得maven无法在远程repo中自动检测并下载较新版本的工件


长期的解决方案是向外部依赖项目的管理员请愿,要求他们重新考虑如何识别和安装特定于平台的工件。

请阅读如何使用maven部署jar文件。您将了解所有groupId、artifactId的意义etc@Smith,您能提供您的错误堆栈跟踪吗?@Smith,请检查您是否能从您在这里提供的maven存储库下载jar文件。如果是,您可以手动将其放入本地缓存(maven存储库)。我可以下载它,还可以检查防火墙策略是否有任何过滤器。如果这些工件的名称与我看到的相同,那么您需要为您的依赖项添加一个示例,例如linux
linux
。你不应该依赖于修复它的
pom
@khmarbaise!正是我需要的。奇怪的是,我在Maven官方参考文档的任何地方都找不到对“分类器”标签的引用(我想我找得不够仔细)。谢谢你的回答。我们开始使用Maven构建脚本的原因是在Travis CI上运行拉请求的自动测试-我不确定我们是否可以访问本地Maven存储库,因为所有内容都在锁定的VM中运行。顺便说一句,下面是对。
<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>