2011-02-04 3 views
10

Abbiamo: Eclipse 3.6, Maven (M2Eclipse), Two Project (ProjectA e ProjectB) con pom.xml.C'è qualche metodo per usare il repository di maven "Progetto Workspace"?

ProgettoB dipende da ProgettoA (utilizzando Maven).

  1. Se installiamo ProjectA al repository locale (esperto di installazione), ProjectB Risolvi dipendenze OK.

  2. Se non installiamo ProjectA nel repository locale. In Maven POM Editor aggiungiamo ProjectA come dipendenza di ProjectB (M2Eclipse usando il repository "workspace project" per risolvere questa dipendenza).

OK, aggiunto. Ma se facciamo "pacchetto Maven" o altri obiettivi dei plugin ... la dipendenza non è stata risolta. E abbiamo quarantina genere:

Download: http://repo1.maven.org/maven2/Artifact/ProjectA/maven-metadata.xml

e, naturalmente, non può essere risolto.

Ora è la domanda. Come posso usare "Workspace project" quando costruisci ProjectB?

P.S. Perché non sto usando "maven install"? OK, è un metodo 100%, ma quando faccio molte piccole modifiche in più è troppo lungo fare operazioni in eccesso.

P.S.S. "Progetto area di lavoro" possiamo vedere Finestra -> Mostra vista -> Repository Maven.

risposta

1
  1. La dipendenza dello spazio di lavoro deve essere risolta. Prova questo,

    run> configurazioni corsa> Maven Costruire> nuovo> Selezionare Progetto B> controllare "risolvere Area di lavoro Artefatto"> obiettivi prefissati come package

    selezionare offline casella di controllo pure.

  2. Forse, è necessario fornire esatto version di Projetta nel tag di dipendenza ProjectB. Altrimenti, può sembrare al repository pubblico di Maven per tirare l'ultimo.

Spero che questo aiuti.

+0

1. non aiutare. "Download: http://repo1.maven.org/maven2/Project A .... pom". Cerca di risolvere il problema usando un repository pubblico. Viene controllato offline immediatamente scrivere "Manca POM per ProjectA, non sono disponibili informazioni sulle dipendenze". 2. La versione è fornita. mmm ... il problema non è nel repository pubblico. Il problema è nella risoluzione del progetto di dipendenza nello spazio di lavoro e non installato nel repository locale. – Alexander

0

Prova questo (in ProjectB):

Maven > Enable Workspace Resolution 

Un problema simile è stato risolto qui in quel modo.

2

Penso che l'idea di eseguire il "pacchetto Maven" o obiettivi simili da Eclipse sia di fare qualsiasi cosa avrebbe fatto Maven se eseguito dalla riga di comando, ad esempio. Lo scenario che stai dando non avrebbe funzionato neanche sulla riga di comando.

Se il progetto B dipende dal progetto A (tramite pom.xml), significa che il progetto A deve essere disponibile in un repository. Che sia locale (tramite mvn install) o remoto via (mvn deploy) non ha importanza, ma il pacchetto mvn non è sufficiente. Questo metterà semplicemente un pacchetto nella cartella/target.

L'unica eccezione sarebbe se entrambi i progetti risiedono nello stesso reattore, suppongo, entrambi i progetti sono moduli di qualche altro progetto "genitore". In tal caso, l'attivazione di bersagli di esperti su uno dei sottomoduli potrebbe essere in grado di risolvere le dipendenze in modo corretto. Non sicuro al 100%.

Torna alla tua domanda: "Ora è il Domanda Come posso usare. 'Progetto di lavoro' quando costruire ProjectB?". No, non la penso così.

+0

Se M2Eclipse è impostato correttamente, premendo "Progetto> Crea tutto" in Eclipse si comporterà come se entrambi i progetti si trovassero nello stesso reattore e funzionerebbero così. Come hai giustamente intuito, è solo quando provi "Esegui come> Creazione di Maven ..." che ti metti nei guai perché questo avvierà la riga di comando Maven. – JBert