1

mojo-executorライブラリを使用して、別の Maven プラグイン内から多数の Maven プラグインを呼び出しています。

ただし、プラグインを呼び出すときに、プラグインへの依存関係を指定する方法が見つかりません。これは、maven-assembly-pluginアセンブリ記述子ファイルを依存関係として追加する必要がある の問題です。別のレベルで依存関係を追加しても、記述子ファイルがプラグインのクラスパスに取得されないようです。

これが可能かどうか、またはこの機能を提供するために mojo-executor を改善できるかどうか、考えはありますか? ありがとう。

4

3 に答える 3

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"),
   ...
)
于 2012-06-21T12:38:58.143 に答える
0

おそらく、Maven プラグインのゴール クラスの @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 アノテーションのパラメータ化に関する詳細は、次の場所にあります。

于 2013-12-04T14:11:46.743 に答える
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>

これにより、依存関係がプラグインのクラスパスに配置されます。それはあなたの問題を解決するかもしれません。

于 2012-06-07T18:06:08.783 に答える