我正在使用一个项目的开源,它由一组父 POM 和几个子 POM 组成。这些子 POM 代表库、arch-types 和插件。这个插件依赖于这些子模块中的各种子模块,并在我的依赖项目部分中使用。我已经将此 Maven 项目导入到我的 Eclipse 工作区。
在我自己项目的 POM(也在 Eclipse 中)中,我可以毫无问题地通过依赖项引用这些模块。但是我也想在构建部分使用插件,但由于以下 Maven2 错误而无法使用:
Project build error: Unresolveable build extension: Plugin org.grouplens.lenskit:lenskit-eval-maven-plugin:2.1-SNAPSHOT or one of its dependencies could not be resolved: Could not find artifact org.grouplens.lenskit:lenskit-eval-maven-plugin:jar:2.1-SNAPSHOT
这是因为我通过 Eclipse 的“解决工作区项目的依赖关系”直接访问 POM,当然这个快照版本还没有部署到存储库,所以这是我实际使用它的唯一方法。
我试过了:
添加 lenskit-eval-maven-plugin 的任何依赖项:它们有几个,但我只是添加了项目模块中的唯一一个(其他包括 maven-plugin-api 之类的东西):
<dependency> <groupId>org.grouplens.lenskit</groupId> <artifactId>lenskit-test</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency>
在使用该部分中的模块之前为该插件模块放置一个依赖项
<dependency> <groupId>org.grouplens.lenskit</groupId> <artifactId>lenskit-eval-maven-plugin</artifactId> <version>${lenskit.version}</version> </dependency>
在插件本身中添加依赖项,因此:
<build> <plugins> <plugin> <artifactId>lenskit-eval-maven-plugin</artifactId> <groupId>org.grouplens.lenskit</groupId> <!-- TODO --> <version>${lenskit.version}</version> <extensions>true</extensions> <dependencies> <dependency> <groupId>org.grouplens.lenskit</groupId> <artifactId>lenskit-eval-maven-plugin</artifactId> <version>${lenskit.version}</version> </dependency> </dependencies>
同时使用 (0), (1) 和 (2)
好的,所以我意识到尝试(2)正在推动它。所以我的问题是:他们有什么方法可以在构建部分使用插件,这也是一个依赖项?如果有怎么办?如果解决方案 (1) 的使用是正确的,这可能是 Eclipse 首先解析到本地工作空间的方法的问题吗?
TIA