mojo-executor支持插件依赖?

时间:2012-06-06 18:13:06

标签: maven maven-plugin

我正在使用mojo-executor库从另一个Maven插件中调用多个Maven插件。

但是,当我调用它时,我找不到任何方法来指定插件的依赖项。这是maven-assembly-plugin的问题,我需要将程序集描述符文件添加为依赖项。在另一个级别添加依赖项似乎不会将描述符文件放到插件的类路径中。

是否有可能,或者是否可以改进mojo-executor以提供此功能?感谢。

3 个答案:

答案 0 :(得分:2)

mojo-executor将在没有任何类路径的环境中执行mojo。 您需要手动添加依赖项。

Dependency dep = new Dependency();  
dep.setGroupId("groupId");
dep.setArtifactId("artifactId");
dep.setVersion("0.0.1-SNAPSHOT");

Plugin assembly = MojoExecutor.plugin(
   "org.apache.maven.plugins", 
   "maven-assembly-plugin", 
   "2.3");

assembly.addDependency(dep)

MojoExecutor.executeMojo(assembly,
   MojoExecutor.goal("single"),
   ...
)

答案 1 :(得分:0)

您知道也可以为插件定义依赖项:

 <plugin>
    <groupId>com.soebes.maven.plugins.mlv</groupId>
    <artifactId>maven-license-verifier-plugin</artifactId>
    <version>0.4</version>
    <dependencies>
      <dependency>
        <groupId>com.company.licenses</groupId>
        <artifactId>allprojects</artifactId>
        <version>1.0</version>
      </dependency
    </dependencies>
    <configuration>
      <!-- Optional you can put your configurations here -->
    </configuration>
  </plugin>

这将依赖于插件的类路径。这可能会解决您的问题。

答案 2 :(得分:0)

也许你需要在myven插件的目标类的@Mojo注释中放置一个requiresDependencyResolution参数。像这样:

@Mojo(name = "your-goal", defaultPhase = LifecyclePhase.xxx,
  requiresDependencyResolution = ResolutionScope.COMPILE_PLUS_RUNTIME
)
public class YourGoalMojo...

这对于您的Maven插件必须在执行之前/之后解析并可用。 mojo-executor项目的README页面在其基于maven-dependency-plugin的示例之后提到了这一点:

有关@Mojo注释参数化的更多信息,请访问: