Maven-“从传递模块依赖包中引用了包,声明了要修复的直接依赖。”

时间:2018-08-31 14:27:47

标签: java maven netbeans

我以前从未使用过Maven,但是在我的Netbeans模块中存在很多关于Mockito依赖关系的问题之后,我决定使用Maven创建一个新的Maven,并将所有内容移到这个新项目中。一段时间后,我设法使模块运行正常。

问题是,当我使用某些需要Netbeans API的功能时,会出现异常。

我的猜测是问题出在pom.xml中声明的依赖项中。在我的应用程序中使用的某些导入中,得到以下消息:

  

引用的传递模块依赖包,声明一个   直接修复。

当我在根目录中清理并构建或运行mvn clean install时,会出现此错误:

  

项目使用传递模块中的类   org.netbeans.api:org-netbeans-modules-projectapi:jar:RELEASE73其中   在运行时将无法访问。       要解决此问题,请将此模块添加为直接依赖项。对于应该包装在NetBeans模块中的OSGi捆绑包,请使用   useOSGiDependencies = false参数

org.codehaus.mojo插件声明(这是唯一带有useOSGiDependencies标签的插件声明)中,我尝试将useOSGiDependencies=true更改为useOSGiDependencies=false,但这没有用。我还尝试将RELEASE73更改为RELEASE82,因为我使用的是Netbeans 8.2,但效果不佳。我还尝试了在Google上找到的许多其他可能的解决方案,但似乎没有一个适合我。

这些是我在pom.xml文件中拥有的Netbeans api依赖项:

<dependencies>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-modules-project-libraries</artifactId>
            <version>RELEASE73</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-api-annotations-common</artifactId>
            <version>RELEASE82</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-openide-util</artifactId>
            <version>RELEASE82</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-openide-awt</artifactId>
            <version>RELEASE82</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.modules</groupId>
            <artifactId>org-netbeans-core</artifactId>
            <version>RELEASE73</version>
        </dependency>
        <!-- ... -->
</dependencies>

我到处都是,但是找不到关于如何声明直接依赖项的简单答案。

有人可以向我解释我在这里做错了什么吗

1 个答案:

答案 0 :(得分:0)

深入研究之后,我发现必须手动添加所有依赖项。 This answer对我有很大帮助。

我只是缺乏Maven的经验。基本上,我用Google搜索 org-netbeans-modules-projectapi:jar:RELEASE73 maven 进入了第一个链接,并将所需的依赖项添加到我的项目中。