2013-08-09 19 views
5

Ho appena scoperto perché Maven non funziona correttamente sulla mia macchina. Per qualche motivo legge la configurazione dell'utente dalla posizione completamente sbagliata. E non capisco perché. Quando eseguo Maven con l'interruttore -X ottengo il seguente output in principio:Maven legge la configurazione utente dalla posizione errata

[DEBUG] Reading global settings from D:\dev\maven\active\conf\settings.xml 
[DEBUG] Reading user settings from D:\.m2\settings.xml 
[DEBUG] Using local repository at D:\dev\maven_repo 

Perché è leggendo le impostazioni utente da D:\.m2 e non la mia directory dell'utente attuale, come normalmente dovrebbe? Ha funzionato bene sul mio vecchio computer. Ha qualcosa a che fare con me aver installato Maven su un disco diverso questa volta? Sul mio vecchio computer è stato installato sul disco C.

Da dove viene questo D:\.m2 da? Come posso farlo leggere il file delle impostazioni utente dalla posizione predefinita effettiva, %userprofile%\.m2?

+1

Cosa restituisce 'echo% HOMEPATH%'? –

+3

Quale versione di Maven (2 o 3)? Qual è il valore della tua variabile env M2_HOME, se è impostata? – Michael

+0

Maven 3, 'M2_HOME' =' D: \ dev \ java \ active' – Svish

risposta

6

Finalmente fuori. Trovato la soluzione in this blog post. Per trovare la directory home in Java si esegue questa operazione:

System.getProperty("user.home"); 

problema è, per qualche motivo stupido, Java non utilizza variabili di ambiente Windows o qualcosa di simile per trovare questa strada. In realtà utilizza la directory principale della directory Desktop. Poiché mi piace mantenere alcune cartelle principali nella mia directory utente su un'unità separata (documenti, download, musica, desktop, ecc.) Ho spostato la directory del desktop su D:\Desktop. Java poi prende quella directory, sale di un livello e rende Maven e altre applicazioni Java cosa D:\ è la mia home directory.

Devo dire che più uso Java più lo odio ... comunque, si spera che questo possa aiutare a risparmiare qualche ora di grattarsi la testa anche per qualcun altro.

Problemi correlati