Programmatische Builds mit Maven 3 API

9

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:

%Vor%

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?

    
md_5 11.01.2013, 10:10
quelle

2 Antworten

3

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.

    
bmargulies 11.01.2013 12:14
quelle
0

Ich habe diese API noch nie benutzt, sieht aber interessant aus.

Ich kann nicht sehen, wo Sie Ihre Ziele festlegen möchten?

Möglicherweise müssen Sie: setGoals für die Maven-Ausführungsanforderung aufrufen.

Ссылка

    
cowls 11.01.2013 10:34
quelle

Tags und Links