実行時に、私のアプリからmaven jaxb2プラグインを実行する必要があります。出来ますか?javaクラスからMavenプラグインを実行することはできますか?
2
A
答えて
2
たぶん私はあなたを助けることができる何かを行っている:私はあなたがしたい正確に何を知っているが、あなたはMavenプロジェクトのMavenプラグインを実行したい場合はいけない
/**
* @author swoeste
*
*/
public class MavenExecutor {
private final File configuration;
private final ClassWorld classWorld;
/**
* Constructor for a new maven executor.
*
* @param aConfiguration
*/
public MavenExecutor(final File aConfiguration) {
this.configuration = aConfiguration;
this.classWorld = new ClassWorld("plexus.core", this.getClass().getClassLoader()); //$NON-NLS-1$
}
/**
* This method is used to perform a mvn command on the given pom. The original
* command must be given, also the sub folder and the marker folder in the working directory. The working directory
* and the configuration file will be added before execution.
*
* @param cmd the mvn command to execute
* @param pom the absolute path to a maven pom file
* @param output the absolute path to the working directory
* @param folder the output sub folder of the working directory
* @param marker the marker sub folder of the working directory
* @return
*/
public int unpack(final String cmd, final File pom, final File output, final String folder, final String marker) {
final List<String> commands = new ArrayList<String>(//
Arrays.asList(cmd.split(ConfigurationConstants.MAVEN_DELIMITER)));
commands.add("-DoutputDirectory=" + output.getAbsolutePath() + folder); //$NON-NLS-1$
commands.add("-DmarkersDirectory=" + output.getAbsolutePath() + marker); //$NON-NLS-1$
commands.add("-gs=\"" + this.configuration.getAbsolutePath() + "\""); //$NON-NLS-1$//$NON-NLS-2$
commands.add("-f=\"" + pom.getAbsolutePath() + "\""); //$NON-NLS-1$ //$NON-NLS-2$
return MavenCli.doMain(commands.toArray(new String[commands.size()]), this.classWorld);
}
}
を上記のコードが動作します。私の場合は、mvnの依存関係を実行します:プロジェクトのunpack-dependenciesコマンド。
あなたはこの依存関係を必要とする作業以上を取得するには:
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-embedder</artifactId>
<version>3.0.3</version>
</dependency>
PS:Javaからのmavenの事を実行する方法については、優れたリソースはm2eclipseプラグインの実装であり、ソフトウェアで)
+0
ソリューションのように見えます。 –
0
私はあなたが本当に必要とすることができます。プラグインのソースをダウンロードして、そこに何が起こっているのかを見てください。適切なMojo(プラグインのゴールを実装するクラス)をインスタンス化して実行することができます。しかし、通常、プラグインの目標は、Mojoがエラーなく実行できるように、実際には提供するのが難しい(または何とかして模擬する)かもしれないMavenプロジェクトのコンテキストに大きく依存しています。
具体的な状況はわかりませんが、プラグインのソースコードで見つかったものに基づいて、達成したいことの独自の実装を書くのは本当に賢明でしょう。あなた自身のすべてを書いてはいけません)。
関連する問題
- 1. mavenとjavaをインストールせずにgradleからmavenプラグインを実行する方法
- 2. Mavenプラグインのデフォルトの実行計画はどこで確認できますか?
- 3. Maven Jaxbプラグインはターゲットフォルダからクラスを生成できません
- 4. Mavenの私はコマンドラインからそのようなコマンドを実行することができますMavenので
- 5. Java | Maven - プラグイン|プロダクション環境でcargo mavenプラグインを使用することをお勧めしますか?
- 6. Mavenプラグインの中からMaven実行パラメータを取得する方法は?
- 7. Java GUIからクラスを実行する
- 8. Cucumber(Java/Maven)で並列ブラウザを実行できますか?
- 9. MS TFSでJava Maven Projectを実行できますか?
- 10. android studioなしでgradleプラグインを実行することはできますか?
- 11. WindowsのJavaコードからMavenを実行していますか?
- 12. mavenプラグインからゴールを実行中にエラーが発生するflexmojos-maven-plugin
- 13. javaからmavenコマンドを実行するには?
- 14. DTDからJavaクラスを自動生成することはできますか?
- 15. Javaでクラスをクローンすることはできますか?
- 16. ドメインクラスからRequestFactory EntityProxyクラスを生成するmavenプラグインはありますか?
- 17. 模擬クラスからテストメソッドを実行することができません
- 18. どこでNaturalDocs Mavenプラグインを入手できますか?
- 19. Javaクラスからアンドロイドクラスを呼び出すことはできますか?
- 20. JSからJavaメソッドを実行することができません
- 21. Java 6でSpringクラウドを実行することはできますか?
- 22. XcodeでJavaコードを編集、コンパイル、実行することはできますか?
- 23. JVMのみでJavaプログラムを実行することはできますか?
- 24. Palm MEでJava MEアプリケーションを実行することはできますか?
- 25. クラスなしでjavaプログラムを実行できますか?
- 26. 通常のJavaプロジェクトでMaven JARをインポートすることはできますか?
- 27. jacoco mavenプラグインはファイルから除外を読み取ることができますか?
- 28. Windows上でWSHからCSSLintを実行することはできますか?
- 29. ページ間でコンソールからjavascriptを実行することはできますか?
- 30. コンパイル時に自動Javaクラス名の置換を実行するためにmavenを使用できますか?
すべてが可能です。ケアはいくつかの詳細を提供する? – maksimov
なぜMavenプラグインを実行しますか? JAXBに関連する何かが必要だと思う?次に、JAXB APIを直接使用します。私はそれが可能だと確信していますが、それを働かせるためには多くの仕事が必要です。プラグインは孤立して実行することはできません.Maven環境が必要です。最も重要なのはpom.xmlです。 –
@maksimovソフトウェアではすべてが不可能です;) – polypiel