Bevor Sie fragen, warum ich einfach einen Prozess zur Ausführung von mvn erstellen kann, möchte ich einen Maven Build über die Maven API ausführen, damit ich Informationen darüber sammeln kann, was im Build passiert, die erzeugten Artefakte usw. usw. Nachher abhängig von org.apache.maven:maven-core:jar:3.0.4
habe ich die folgende Methode geschrieben, um so etwas zu tun:
Dieser Code schlägt jedoch aufgrund von Nullzeigerausnahmen bei maven.execute
fehl. Diese Nullzeigerausnahmen sind grundsätzlich überall, weil private Felder in DefaultMaven
nicht initialisiert werden. Sie sind alle mit @Required
versehen, also vermute ich, dass dies etwas mit Plexus zu tun hat.
Wie kann ich Maven erfolgreich zur Ausführung eines solchen Builds verwenden?
Sie sollten die tatsächliche Maven-Einbettungs-API verwenden:
Um Beispiele zu sehen, schauen Sie in Richtung der Open Source von M2Eclipse.
Nun, diese Komponente ist nicht wirklich sehr gut benannt. Es ist eigentlich ein Convenience-Wrapper, der darauf abzielt, ein CLI zu erstellen. Also, was Sie tun wollen, ist die Quelle davon zu lesen.