Scriu foarte rar despre munca mea pentru ca mi se pare boring. Chestia asta insa trebuie sa fie aci ca sa nu se mai chinuie si alti prosti.
Avem asa: experienta cu OSGi – zero; experienta cu Maven – cat sa nu ne facem de ras; Apache Sling – rookie level.
Episodul 1 – creez proiectul, scriu codul, implementez ce trebuie, adnotez ce trebuie. “mvn clean install”, totul merge flawless, componente in OSGi – 0. Foul language on.
Episodul 2 – fac un proiect de test, dar cu arhetip “sling-bundle-archetype” (primul era “sling-initial-content”). “mvn clean install”, totul merge flawless, componente in OSGi – cate trebuie. More foul language.
Episodul 3 – dau cu capu de perete, copiez intrarile dintr-un POM in altul… Niente. Debug mode on. “No SCR Descriptors found”. Pizda ma-sii!
Episodul 4 – cu un zgomot infiorator imi pica fisa. SCR descriptors sunt adnotari in javadoc pentru componente de OSGi. Eu am folosit adnotari Java, pentru ca alea javadoc sunt deprecated in ultimele versiuni. Daca pluginul nu stie de adnotari java?
…si in acel moment vad mica diferenta dintre POM-ul meu si POM-ul lui (adica al celui de-al doilea proiect):
La mine era:
<plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-scr-plugin</artifactId> <version>1.7.2</version> <executions> <execution> <id>generate-scr-descriptor</id> <goals> <goal>scr</goal> </goals> </execution> </executions> <plugin>
Iar la el era:
<plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-scr-plugin</artifactId> <executions> <execution> <id>generate-scr-descriptor</id> <goals> <goal>scr</goal> </goals> </execution> </executions> </plugin>
Lipseste nenorocita de versiune a pluginului! Asta inseamna ca eu, ca un riguros prost ce sunt dornic sa scriu in clar versiunea de plugin, am folosit un plugin mai vechi de 1.9.0 (cat e acum) care nu recunostea adnotari Java, deci imi dadea cu tifla. Daca nu specifici versiunea de plugin maven o va descarca automat pe ultima (si-ti va da si un warning ca poate ar trebui sa pui totusi versiunea) si totul va merge snur.
…more foul language.
nah ca pe-asta cu omisul versiunii n-o stiam, dar in general maven nu-i greu deloc, o sa-l prinzi repede si e destul de bine documentat, dar treaba cu dependente care tin de versiune e omor curat!