Code Monkey home page Code Monkey logo

cygni-maven-exercise-1's Introduction

cygni-maven-exercise-1

Detta är en övning i Maven skapad för Cygnis traineeprogram.

Main-branchen motsvarar "facit" i övningen, och branchen "initial" är utgångsläget.

Förberedelser

Kolla att du har Maven och Java installerat, och klona ut projektet:

git clone [email protected]:mthorsson/cygni-maven-exercise-1.git

Checka sedan ut branchen "inital":

git checkout initial

Titta i pom.xml och lägg till dig själv i listan av utvecklare. Testa att bygga projektet:

mvn package

Se också om du kan köra programmet i sin ursprungliga form:

java -cp <path-till-jar> se.cygni.training.maven.App

Nu kan vi sätta igång!

Övning 1

Maven har ett lokalt Repo på maskinen. Installera din artefakt där lokalisera filen i Repot.

Övning 2

Konfigurera maven-compiler-plugin så att projektet använder den senaste versionen av plugnen, samt specificera Javas target-version till 1.7. Default-target-version varierar med maven-version, men det är ofta äldre versioner.

Tips: Börja med att köra mvn help:effective-pom för att se vilken version som körs

Övning 3

Byt ut vanliga spårutskrifter (System.out.println etc) mot användandet av en riktig logger. Då behövs ett Maven-beroende till SLF4J. Använd en maven-property ${slf4j.version} för att styra versionen i POM:en.

Tips: Artefakten som behövs heter slf4j-simple.

Nu har vi introducerat ett beroende i Maven och vi kan inte längre köra programmet rakt av med java vid kommandoprompten. Då kan man i stället använda standardpluginen maven-exec-plugin för att köra (då kommer beroendena med på classpath):

mvn clean compile exec:java -Dexec.mainClass="se.cygni.training.maven.App"

Övning 4

Förenkla distributionen och körandet av projektet ytterligare! Använd maven-assembly-plugin för att skapa en körbar jar-fil. Jar-filen innehåller alla beroenden och blir helt "självförsörjande".

Sätt descriptorRef till jar-with-dependencies och se till så att jar:en byggs i samband med package-fasen.

Kör sedan applikationen från kommandoraden utan hjälp av Maven:

java -jar target/exercise-1-1.0-SNAPSHOT-jar-with-dependencies.jar

Ett alternativ till maven-assembly-plugin är maven-shade-plugin.

Överkurs

Bryt ut klassen StringGetter till ett eget projekt. Bygg och installera. Lägg till ett beroende till projektet i huvudprojektet.

Tips: Använd eventuellt maven archetype

Du kan också testa att göra det till ett multimodul-projekt, där man refererer till underprojekt från ett topp-projekt.

cygni-maven-exercise-1's People

Contributors

mthorsson avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.