2013-03-26 52 views
0

我有一个系统接受插件让用户添加功能到管理系统。该插件基本上只是一个具有特定格式的zip文件(即该目录中的文件x,该目录中的y)。目前我使用maven-assembly-plugin插件来制作zip文件。通过maven插件注入依赖关系

的问题是,它是尴尬让我的所有插件同步,并让别人做一个插件,因为他们需要有正确的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

+0

你读过你提到的线程中的答案? – khmarbaise 2013-03-27 07:46:44

+0

@khmarbaise是的,但那是5年以前。谁知道从那以后发生了什么。 – mlathe 2013-03-27 19:46:31

+1

我遇到了一个非常明显和简单的解决方案。我制作了一个包含依赖关系的“pom”项目,并要求开发人员将该pom作为依赖项。这很好地解决了我的问题,因为我可以将依赖关系集中在一个地方,并且每个“插件”都可以在需要时可传递到核心API依赖关系。十分简单。 – mlathe 2013-03-27 22:12:58

回答

0

回答评论:

我碰到一个很明显的和简单的解决方案来。我制作了一个包含依赖关系的“pom” 项目,并要求开发人员 将该pom作为依赖关系。这很好地解决了我的问题,因为我可以将依赖关系集中在一个位置,并且每个“插件”可以通过 传递到核心api依赖关系(如果他们想要的话)。易 Peasy。 - - mlathe 13年3月27日在22:12

+1

我正在尝试做同样的事情。一个问题:当你说“并要求开发人员将该pom作为一个依赖项”时,应该将POM作为依赖项包含在哪里? (1)在插件的POM中,或(2)在POM中使用插件? – 2016-10-25 01:14:40