【发布时间】:2013-03-26 21:34:34
【问题描述】:
我有一个接受插件的系统,让用户可以向管理系统添加功能。该插件基本上只是一个具有某种格式的 zip 文件(即文件 x 在这个目录中,y 在那个目录中)。目前我使用 maven-assembly-plugin 插件来制作 zip。
问题是让我的所有插件保持同步并让其他人制作插件很尴尬,因为他们需要正确的 assembly.xml
因此,我一直在尝试制作自定义包装类型,以便开发人员可以制作这样的插件:
<groupId>com.example</groupId>
<artifactId>example</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>plugin</packaging> //not a standard type
这主要是可行的,但现在丑陋的事情是每个插件总是依赖于核心系统中的某些 API。因此它们基本上都具有相同的依赖关系。
mojo 是否可以将依赖项注入 mojo 的用户? 这似乎是说它不能: http://maven.40175.n5.nabble.com/How-to-inject-dependencies-from-a-mojo-td83025.html
【问题讨论】:
-
您在您提到的主题中阅读了答案吗?
-
@khmarbaise 是的,但那是 5 多年前的事了。谁知道从那以后发生了什么。
-
我遇到了一个非常明显和简单的解决方案。我制作了一个包含依赖项的“pom”项目,并要求开发人员将该 pom 作为依赖项包含在内。这很好地解决了我的问题,因为我可以将依赖项集中在一个地方,并且每个“插件”都可以根据需要传递到核心 api 依赖项。轻松愉快。
标签: maven maven-plugin