Ho un progetto GitHub basato su Java, fitnessjiffy-spring (Attualmente sono focalizzato sul ramo "bootstrap"). Dipende da una libreria creata da un altro progetto GitHib, fitnessjiff-etl. Sto cercando di configurare entrambi questi elementi per essere costruiti da Travis CI.Travis CI che non utilizza repository Maven extra fornito in pom.xml
Sfortunatamente, Travis non è sofisticato come Jenkins o Hudson nell'affrontare i progetti Java basati su Maven. Jenkins può facilmente gestire le dipendenze tra i progetti, ma lo stesso concetto non sembra esistere con Travis. Se un progetto dipende da un altro, allora quell'altro progetto deve essere già costruito in precedenza ... e il suo artefatto caricato su qualche repository Maven in cui il primo progetto può scaricarlo successivamente.
La mia libreria "fitnessjiffy-etl" sta costruendo e distribuendo bene. Sto usando Bintray per Maven repository di hosting, e si può chiaramente vedere i miei manufatti oltre HTTP pianura:
http://dl.bintray.com/steve-perkins/maven/
Nel mio progetto "fitnessjiffy-primavera", sto aggiungendo questa posizione repo Maven direttamente nel pom.xml
, in modo che Travis sia in grado di trovare quella dipendenza da artefatto. Here is the state of my POM at the time of this writing. Notare l'elemento <repositories>
nella parte inferiore del file.
Quando si crea questo progetto localmente, funziona perfettamente. Posso vederlo scaricando l'artefatto Maven da "http://dl.bintray.com/ ...". Tuttavia, quando provo a costruire su Travis CI, ogni volta fallisce. Posso vedere nel registro della console che Travis sta ancora cercando di scaricare l'artefatto da Maven Central piuttosto che dal mio repository specificato.
Questo ha senso per chiunque altro? Perché Maven utilizza un percorso di repository personalizzato in un file POM quando si costruisce localmente, ma ignora questa configurazione quando è in esecuzione su un build di Travis CI?