Analisi e reporting del codice: Maven vs. Jenkins

6

Il mio team (~ 10 sviluppatori) è recentemente migrato a Maven (progetto multi-modulo, circa 50 moduli) e ora utilizziamo Jenkins per l'integrazione continua. Poiché la configurazione generale è in esecuzione, stiamo pianificando di includere l'analisi del codice e gli strumenti di reporting (ad es. Checkstyle e Corbertura).

Per quanto posso vedere, abbiamo fondamentalmente due opzioni per generare tali rapporti: utilizzare i plug-in di reporting di Maven per generare un sito e / o utilizzare i plug-in Jenkins per eseguire i report .

Quale approccio è migliore e per quali ragioni?

Sembra che entrambi abbiano i loro pregi:

Maven-Report:

  • tutto è configurato in un unico posto (i file pom)
  • La generazione di report
  • su una macchina locale (ad es. senza Jenkins) è semplice e non richiede passaggi aggiuntivi

    Jenkins-Report:

  • la regolazione della configurazione dei rapporti sembra più intuitiva rispetto a Maven e non interferisce con l'attività principale di Maven nella nostra configurazione (creazione e distribuzione)
  • una singola interfaccia web per controllare lo stato generale del progetto, in modo che i problemi segnalati siano più facili da trovare e più difficili da ignorare (ovvero, non è necessario fare clic attraverso il sito di esperti, alcuni bei diagrammi di cronologia, notifiche, ecc. .)

    Qualcuno ha preso una decisione simile in passato, o si tratta di un non-problema per qualche motivo? (Quanto bene funziona? Qualche rimpianto?)

    È consigliabile andare in entrambe le direzioni , oppure l'impostazione è noiosa da mantenere?

    Ci sono aspetti del problema di cui sono inconsapevole o alcuni vantaggi che non ho notato (ad esempio, il reporting basato su Maven è ben integrato con m2eclipse)?

    Eventuali insidie o problemi tipici che probabilmente incontreremo?

    Modifica

    Abbiamo provato Sonar , come suggerito di seguito (incluso il suo plug-in Jenkins). Finora, funziona abbastanza bene. Sonar è relativamente semplice da installare e funziona in cima al nostro setup di Maven (uno invoca mvn sonar:sonar o riconfigura un lavoro Jenkins, tutto qui). Ciò significa che non dobbiamo mantenere una configurazione duplicata, poiché tutte le nostre impostazioni Maven vengono utilizzate automaticamente (l'unica eccezione è rappresentata da modelli di esclusione). L'interfaccia web è bella, e - ancora meglio - c'è un plug-in Eclipse che recupera automaticamente tutti i problemi, in modo che nessuno debba accedere al sito Web di Sonar, poiché tutti i problemi possono essere visualizzati automaticamente nell'IDE .

        
  • posta Roland Ewald 27.09.2011 - 10:11
    fonte

    1 risposta

    10

    Poiché hai già i tuoi progetti pronti per l'installazione di Maven e Jenkins, puoi fare un ulteriore passo avanti e installare Sonar . È un incredibile strumento correlato alla qualità del codice, esegue Cobertura , Checkstyle , FindBug e molti altri strumenti di analisi allo stesso tempo. In questo modo, il report sulla qualità del codice viene eseguito da Sonar, non da Maven o Jenkins .

    È possibile installare Sonar sullo stesso computer su cui è installato Jenkins o da qualche altra parte. Se vuoi solo testarlo, puoi semplicemente eseguire l'installazione standard (usa il suo HSQLDB se non lo configuri tu stesso) e sei quasi pronto per partire. L'ultima cosa di cui hai bisogno è configurare la relazione tra Jenkins e Sonar.

    C'è fatto tramite il plug-in Sonar per Jenkins. Una volta installato il plug-in:

    1. Indicare dove si trova Sonar nella configurazione di Jenkins
    2. Per ogni lavoro di costruzione che si desidera analizzare, accedere alla configurazione del lavoro e selezionare la casella di controllo "Sonar".

    Stai attento a una cosa: l'analisi potrebbe essere piuttosto lunga per i grandi progetti. Ma di nuovo, puoi configurare speciali build Sonar notturni in aggiunta alle versioni standard.

    Spero di esserti stato utile.

        
    risposta data 27.09.2011 - 14:02
    fonte