Apr 13, 2014

Οδηγός γρήγορης εκκίνησης του SonarQube στο Ubuntu σε 2 λεπτά

Το SonarQube αποτελεί ένα de-facto εργαλείο για την στατική ανάλυση κώδικα και την παρακολούθηση της εξέλιξης, της ποιότητας και της εφαρμογής κανόνων στην ανάπτυξη. Αυτό το διάστημα εξετάζω το SonarQube σε σχέση με το Oracle ADF και κώδικα γραμμένο σε PL/SQL και αυτό το πρώτο σημείωμα στοχεύει στην εγκατάσταση του SonarQube με τον γρηγορότερο δυνατό τρόπο στο Ubuntu.

Συνεπής με τις τεχνολογίες virtualization και για λόγους καλύτερης οργάνωσης, κατασκεύασα μια εικονική μηχανή στο lxc, βασισμένη στην τελευταία έκδοση του Ubuntu με την εντολή:

sudo lxc-create -t ubuntu -n sonar

Άσχετα αν ακολουθήσουμε το lxc, θα χρειαστούμε ένα data repository για το SonarQube. Ας χρησιμοποιήσουμε την MySQL.


sudo apt-get install mysql-server


Ένα script για την κατασκευή του απαραίτητου σχήματος θα βρείτε εδώ. Για την εγκατάσταση του λογισμικού του SonarQube, θα χρειαστούμε την Java (κατά προτίμηση JDK 7) αλλά και το ίδιο το λογισμικό του Sonar. Πολύ εύκολο! Προσθέτουμε δυο εγγραφές στο /etc/apt/sources.list:

deb http://downloads.sourceforge.net/project/sonar-pkg/deb binary/
deb http://ppa.launchpad.net/webupd8team/java/ubuntu saucy main

Και έπειτα εγκαθιστούμε το σχετικό λογισμικό:

sudo apt-get update && sudo apt-get install oracle-java7-installer sonar

Με την προηγούμενη εντολή, θα γίνει εγκατάσταση στην διαδρομή /opt/sonar με τα δικαιώματα ενός ειδικού χρήστη (sonar) Για να συνδέσουμε το Sonar με την MySQL, επεξεργαζόμαστε το αρχείο /opt/sonar/conf/sonar.properties και σχολιάζουμε (comment) την H2 database και κάνουμε uncomment την γραμμή της MySQL.

Τέλος, για την αυτόματη εκκίνηση του SonarQube, μπορούμε να προσθέσουμε την εξής γραμμή στο αρχείο /etc/rc.local.

su - sonar /opt/sonar/bin/linux-x86-64/sonar.sh start

Έτσι, οι αναφορές θα μας περιμένουν στο http://localhost:9000. Περισσότερες πληροφορίες για την εγκατάσταση θα βρείτε εδώ.

Στα επόμενα άρθρα θα αναφερθούμε στην χρήση SonarQube σε ADF εφαρμογές καθώς και στην διασύνδεση με το OJAudit.

No comments: