2012-08-02 18 views
13

Ero solo curioso di sapere questo, quando do mvn install senza fare 'clean', maven compila solo i file java modificati. In che modo Maven identifica un file java che è stato modificato o meno? Credo che non stia usando l'ultima proprietà modificata del file.In che modo Maven compila solo i file java modificati?

Motivo per la mia convinzione: avevo un modulo, dopo aver unito una modifica da svn, ho dato a mvn install e non ha compilato il file modificato e quando ho visto il cambiamento ho visto che 'long' sono stati modificati in 'Long' in getter e setter.

Quindi voglio solo sapere come Maven identifica se un file java è cambiato o no?

(P.S sto usando Apache Maven 3.0.3, se quello che conta)

+0

immagino usa svn st? – Fakrudeen

+0

cosa succede se il modulo non è sotto controllo di versione? –

+0

then (tempo del file di classe

risposta

15

credo che il compilatore plugin di Maven utilizza ultime date modificate sui file di origine e di classe per determinare se la ricompilazione è necessaria.

Il compilatore website è piuttosto a corto di informazioni, ma la pagina compiler:compile obiettivo ha informazioni sul seguente attributo, che sintonizza finemente i calcoli stantio: http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#staleMillis. Questa è l'unica affermazione ufficiale riguardante la stoltezza.

+0

Indovina che la mia convinzione è errata e utilizza l'ultima proprietà modificata. Grazie per il link! –

5

senza sapere molto su Maven, vi posso dire che in generale, "fanno" strumenti -come usano il "l'ultima modifica" timestamp, il che spiegherebbe il problema che hai avuto con svn (vedi Wikipedia on Subversion's weaknesses.

+0

hai ragione! Grazie :) –

Problemi correlati