我以前从未使用过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>
我到处都是,但是找不到关于如何声明直接依赖项的简单答案。
有人可以向我解释我在这里做错了什么吗
答案 0 :(得分:0)
深入研究之后,我发现必须手动添加所有依赖项。 This answer对我有很大帮助。
我只是缺乏Maven的经验。基本上,我用Google搜索 org-netbeans-modules-projectapi:jar:RELEASE73 maven 进入了第一个链接,并将所需的依赖项添加到我的项目中。