Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.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:如何在linux上使用非托管依赖项?_Java_Linux_Maven - Fatal编程技术网

Java Maven:如何在linux上使用非托管依赖项?

Java Maven:如何在linux上使用非托管依赖项?,java,linux,maven,Java,Linux,Maven,我尝试添加非托管依赖项,如下所述: 但它只在Windows上工作,在linux上不工作 项目结构 |- src |- main |- java |- ... |- resources |- libs |- net |- milkbowl |- Vault |- vault |- maven-metadata.xml |- ... |- 1.2.26-SNAPSHOT

我尝试添加非托管依赖项,如下所述:

但它只在Windows上工作,在linux上不工作

项目结构

|- src
  |- main
    |- java
      |- ...
    |- resources
|- libs
  |- net
    |- milkbowl
      |- Vault
        |- vault
          |- maven-metadata.xml
          |- ...
          |- 1.2.26-SNAPSHOT
            |- vault-1.2.26-SNAPSHOT.jar
            |- vault-1.2.26-SNAPSHOT.pom
            |- ...
|- pom.xml
我的POM:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <packaging>pom</packaging>
    [...]
    <repositories>
        <repository>
            <id>bukkit-repo</id>
            <url>http://repo.bukkit.org/content/repositories/snapshots/</url>
        </repository>
        <repository>
            <id>local-dependencies</id>
            <url>file:${project.basedir}/../libs/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.bukkit</groupId>
            <artifactId>bukkit</artifactId>
            <version>1.7.5-R0.1-SNAPSHOT</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>net.milkbowl.vault</groupId>
            <artifactId>vault</artifactId>
            <version>1.2.26-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    [...]
</project>

4.0.0
聚甲醛
[...]
bukkit回购
http://repo.bukkit.org/content/repositories/snapshots/
局部依赖
文件:${project.basedir}/./libs/
org.bukkit
布基特
1.7.5-R0.1-快照
罐子
net.milkbowl.vault
拱顶
1.2.26-快照
假如
[...]

错误:缺少工件net.milkbowl.vault:vault:jar:1.2.26-SNAPSHOT

首先获取jar,然后执行以下maven目标,将该jar安装到本地存储库中

mvn install:install-file -Dfile=/path/to/vault.jar -DgroupId=net.milkbowl.vault
-DartifactId=vault -Dversion=1.2.26-SNAPSHOT -Dpackaging=jar

如果这是成功的,那么在您的主项目上再次执行build,它被定义为依赖项,我猜问题的根源是jar的命名。在版本中包含快照会告诉maven在存储库中查找最新的快照。为什么不从名称中删除快照,然后再试一次。

它安装成功了吗?如果是这样的话,您可以在~/.m2/repository/net/milkbowl/vault/中看到该文件,并且可以在传递了
-X
标志的情况下发布构建日志,但这只是stacktrace,因为构建日志太长了…您执行的maven目标是什么?在日志的前10行的某个地方,它说的是使用位于的本地存储库
,并且安装快照jar的路径正确吗?只是澄清一下,您必须从jar名称中删除快照,即jar的路径,并更改项目的pom.xml中的依赖项。然后,您必须重新部署依赖项并重建项目。是的,我知道,我重命名了路径、jar、其他一些文件(如pom)以及项目的pom.xml中的依赖项。请尝试删除存储库定义中的额外/。不确定是否有用,但值得一试。