Dal Maven 3.3.1, esiste una nuova proprietà di sistema denominata maven.multiModuleProjectDirectory
. È impostato per impostazione predefinita alla radice del progetto (directory di base del progetto) tramite lo script mvn
(or mvn.bat
) (motivo per cui non si è mai verificato un simile errore prima).
Pertanto, quando si esegue Maven tramite maven-embedder
, è inoltre necessario impostare questa proprietà di sistema (vedere source code in cui viene effettuato il controllo). Deve essere impostato sulla radice del progetto.
Per impostare questa proprietà di sistema, è possibile regolare la vostra chiamata a doMain
e aggiungere
"-Dmaven.multiModuleProjectDirectory=" + projectRoot
per gli argomenti dati. Un esempio potrebbe essere
int result = cli.doMain(new String[] { "-Dmaven.multiModuleProjectDirectory=" + projectRoot, "install" }, "/path/to/project", System.out, System.err);
In alternativa, è possibile chiamare:
System.setProperty("maven.multiModuleProjectDirectory", projectRoot);
prima di invocare MavenCli.doMain
metodo, dove projectRoot
punti alla base del progetto che si sta costruendo.
Bene, hai impostato '-Dmaven.multiModuleProjectDirectory' nella base del progetto? – Tunaki
Sono in grado di eseguire comandi Maven sul mio sistema. Non ho mai ricevuto questo errore –