Automatiskt byggande med Ant

Storlek: px
Starta visningen från sidan:

Download "Automatiskt byggande med Ant"

Transkript

1 Automatiskt byggande med Ant Joakim Beijar Department of Computer Science Åbo Akademi University, FIN Åbo, Finland ACM Klassificering: D.2.9, D.2.6, K.6.3 ACM Special Intrest Groups: SIGSOFT 19 november 2003 Sammanfattning Mjukvaruproduktion är besvärligt, ett stort projekt omfattar hundratals filer och resurser av olika slag som måste kombineras på rätt sätt i rätt ordning. Java har saknat ett robust och användbart bygghanteringssystem för att förenkla byggande som make redan länge utgjort i C/C++ sammanhang. Java ställer egna krav på bygghanteringen men erbjuder också helt unika möjligheter. Denna artikel presenterar kort vad byggande innebär, introducerar läsaren till Ant och visar på de möjligheter som Ant erbjuder Java utvecklare i både små och stora projekt. 1 Introduktion Programutveckling är ett komplext arbete. Redan små program, med en eller ett fåtal utvecklare blir snabbt svåra att hantera och underhålla. När projektet involverar flera utvecklare, flera externa resurser, och utvecklarna är placerade separerat antingen fysiskt eller tidsmässigt blir det omöjligt att kontollera arbetet och det blir svårt att upprätthålla kvaliteten eller hålla satta tidsramar. Vad kan man då göra åt detta? 1.1 Byggande och bygghantering En vanlig lösning på komplexitet är att dela upp problemet i mindre enheter och lösa dem separat. För att kunna göra detta behöver man ett robust sätt att återkombinera alla delar till den fullständiga lösningen efter att man löst dem var och en. Med bygghantering (Build Management) menar man den process och de rutiner man följder för att göra detta i ett mjukvaruprojekt. Traditionellt har byggande omfattat det man gör när man utgående från källkod och andra resurser, kompilerar och sammanlänkar filer på ett sådant sätt att man får en fungerande applikation. Allt oftare involverar processen inte nödvändigtvis kompilerande, många program skrivs i tolkade språk, eller länkning, eftersom detta i många språk sker 1

2 automatiskt vid det tillfälle programmet körs. Allt oftare vill man istället att byggprocessen även producerar annat material, till exempel dokumentation, utför automatiserade tester eller utför konfigurations arbete i databaser. Ett av de första egentliga verktygen för bygghantering var make som presenterades i [Fel79] av S. Feldman redan Make används fortfarande för att bygga majoriteten av alla program som skrivs i C/C++, ingår som standard i de flesta utvecklingspaket i en eller annan form, och är standarden alla andra liknande system jämförs med. I och med Make introducerads också en stor del av de koncept och den terminologi, tex beroenden och mål, som används av många senare verktyg. Make använder sig av en textfil, kallad makefil, för att definiera beroenden mellan de källfiler och de kommandon som används för att bygga ett projekt. Makefilen underhålls manuellt av programmeraren, eller med hjälp av speciella verktyg som försöker bestämma beroenden mellan källkods filerna maskinellt. Den definierar ett antal mål där ett mål i make ofta motsvarar en modul eller ett antal filer som skall behandlas och hur dessa skall behandlas. Varje mål kan vara beroende av ett eller flera andra mål, på så sätt byggs ett träd av beroenden upp som hjälper make att endast återskapa de mål som verkligen påverkas av den ändring som skett sedan senaste körning. 1.2 Release hantering Bygghantering är nära relaterat till releasehantering. Så nära att man ofta talar om dem som en enhet, bygg- och releasehantering. Med en release menar man byggande av en färdig version av applikationen, redo för kund eller slutanvändare. Ofta innefattar releasen steg som inte förekommer i det vanliga byggandet, detta kan vara till exempel paketering och produktion för olika platformar, speciell stress testning, skapande av exempelmaterial och ibland även automatisk installation, så kallad deployment, på en annan maskin. I en release är det också ofta mer kritiskt än under utvecklingsfasen att veta vilka versioner av de olika komponenterna som har ingått för att man senare skall kunna hitta och korrigera fel, dels efterson felsöknings funktionalitet har kopplats bort för att öka prestanda och dels för att det kan gå lång tid mellan att releasen gjorts och felet upptäcks. 2 Vad är ant? Ant är ett Java baserat program för att underlätta, automatisera och strukturera byggande av andra program. Ant underhålls av Apache Foundation som en del i deras Jakarta projekt för att utveckla och underhålla lösningar för Java platformen kostnadsfritt för alla intresserade. Källkoden är fritt tillgänglig och vem som helst kan använda och modifiera programmet enligt sina behov och önskemål. Flexibiliteten att kunna utöka och modifiera programmet är något som ofta är värdefullt när man vill integrera redan existerande system i en organisation. Ant är tänkt att för Java projekt, ta den plats som make har haft i byggandet av C/C++ projekt. Även om det främst är tänkt att användas för att bygga java projekt är det i viss mån även lämpat att bygga program i andra språk eller program där delar skrivs i andra språk. Det sagt är det dock värt att notera att många av de inbyggda funktionerna är väldigt java inriktade och en del av styrkan i Ant kommer ifrån närheten till java miljön. James Duncan Davidson, ants skapare, beskriver i [BBB03] Ant som make without the wrinkles, fritt översatt som make utan, makes rynkor. Som orsak till att han började

3 utveckla ant ger han just dessa ålderna rynkor som gjorde utveckling på flera olika samtidiga platformar besvärligt. Makes stora problem enligt honom var att det var svårt att utöka make på ett återanvändbart portabelt sätt och dess alldeles för stora beroende av den kommandotolk den kördes under, olika platformars tolkar beter sig på olika sätt och hade olika syntax vilket betydde att samma makefil kunde sluta fungera, eller värre fungera på olika sätt när den kördes på olika platformar. Eftersom ant alltid körs i Java tillhandahåller Java en standard miljö som alltid fungerar på samma sätt, oberoende av den underliggande platform det körs på. Ant är inte, och försöker inte vara make i Java. Till exempel ägnar sig ant själv inte åt beroenden mellan individuella filer utan intresserar sig mer för de steg, och den ordning dessa steg skall utföras i för att fullfölja byggandet. Det är upp till de delar som utför dessa steg att kontrollera att filer är aktuella, och återskapa de som inte är aktuella på mest eknomiska och lämpade sätt. Förutom det som make traditionellt använts för kan ant användas till mycket annat, främst tack vare en stor uppsättning funktioner som integrerar andra delar av utvecklingsmiljön. Till exempel finns integration med flera olika versionshanterings system, automatiserad testning, upprätthållande av en källkods stil standard eller automatiserad installation på utvecklingsservrar eller liknande. 3 Kort introduktion till ant 3.1 Anrop och användning I följande anrop utan argument, letar ant efter en build.xml fil i den aktuella mappen och bygger det mål som angetts som utgångsmål i denna. % ant Följande anrop fungerar precis som det tidigare förutom att nu byggs målet allt som definierats i buildfilen annan-build.xml istället. % ant allt -buildfile annan-build.xml 3.2 Buildfilen Kärnan i användandet av ant är en fil kallad buildfilen, buildfilen innehåller en utförlig beskrivning av vad man vill att ant skall göra för att bygga alla delar. Filen är en helt vanlig XML textfil och detta är en fördel av flera orsaker, dels är det lätt att redigera och manipulera utan special verktyg, endast en vanlig text editor är nödvändig, dels undviker man problem med platforms specifika konventioner om radbrytningar eller liknande och sist men inte minst underlättar det maskinell behandling av filen. Ett utvecklingsverktyg kan till exempel enkelt automatiskt generera en buildfil för att bygga ett projekt, och även enkelt underhålla denna under projektets utveckling <project> elementet Buildfilens grundelement är projektelementet som omsluter alla andra element. Projektelementet och dess underelement ger information om projektet som helhet och har följande tre attribut som beskrivs i tabell 1 och ett antal underelement.

4 Attribut name default basedir Beskrivning Frivilligt attribut som anger ett namn för projektet. Egenskapen ant.project reflekterar värdet i detta attribut och kan användas för att infoga projektets namn till exempel för att döpa filer tillhörande projektet. Det mål som används ifall inget speciellt mål har angivits vid anropet. Frivilligt attribut som låter en definiera ett bas från vilken alla relativa sökvägar beräknas från, ifall detta attribut saknas används den sökväg där buildfilen ligger. Tabell 1: Projektelementets attribut Till projekt elementet kan fogas ett frivilligt <description> underelement som ger en beskrivningstext för projektet, detta element påverkar inte byggningen men kan användas av andra program som opererar på build.xml filen, till exempel tredjeparts grafiska gränssnitt. I figur 1 nedan visas exempel på en enkel buildfil med endast ett <project> element, och en beskrivning i <description> elementet. <? xml version =" 1.0 "?> < project name =" exempel " default ="... "> < description > Ett enkelt buildfil exempel. </ description >... </ project > Figur 1: Exempel buildfil 3.3 <target> elementet och beroenden Varje projekt måste ha minst ett, möjligen flera <target> element. Ett av dessa pekas ut av default attributet på projekt elementet. Target elementet har en del attribut som kort beskrivs i tabell 2, dessa styr bland annat hur ant behandlar målet och hur målet kan manipuleras av andra mål. Attribut name depends if unless Beskrivning Definierar ett namn för målet. Lista över andra mål som detta mål är beroende av. Namn på en property som måste vara definierad för att målet skall behandlas. Namn på en property som inte får vara definierad för att målet skall behandlas. description En beskrivning som ges ifall användaren ger argumentet -projecthelp från kommandotolken, mål utan beskrivning tolkas som interna och skrivs inte ut. Tabell 2: Target elementets attribut

5 Varje mål är en gruppering av uppgifter som skall utföras. Man brukar till exempel gruppera alla de uppgifter som behövs för att kompilera källkoden för en modul i ett eget mål och de uppgifter som krävs för att köra automatiska test i ett annat. Vissa mål blir i och med denna gruppering naturligtvis beroende av ett eller flera andra mål. Till exempel måste projektet ha kompilerats för att testerna skall kunna köras, man säger att att paketerings målet är beroende av kompilations målet. Dessa beroenden definierars i depends attributet med hjälp av en komma separerad lista över namn för de mål på vilka det aktuella målet är beroende. Dessa beroenden behandlas av ant från vänster till höger med en djupet först sökning av vart och ett i listan. Till exempel skulle byggning av målet package i buildfilen i figur 2 nedan exekveras i ordningen init, build, test, checkstyle och sist de uppgifter som definieras i målet package. <? xml version =" 1.0 "?> < project name ="... " default =" build ">... <target name =" init "/> <target name =" build " depends =" init "/> <target name =" test " depends =" build "/> <target name =" checkstyle " depends =" build "/> <target name =" package " depends =" build,test, checkstyle "/> </ project > Figur 2: Exempel på beroenden Varje steg utförs endast en gång även om det som build i exemplet, skulle förekomma i överlappande beroenden. Man bör kanske nämna att en byggning inte beöver vara så linjär som det kan verka från exemplet ovan. Till exempel vill man ibland endast kompilera och köra de automatiska test man har skrivit. Detta kan man göra genom ange namnet för det mål man vill bygga, till exempel test som argument vid kommandotolken, eller till exempel genom ett menyalternativ i en grafiskutvecklingsmiljö. Ant kör då endast detta mål och eventuella andra mål som det angivna målet är beroende av. Ibland är det även intressant att kunna på ett mer detaljerat sätt styra ifall ett mål skall behandlas eller inte, till exempel om man vill ta hänsyn speciella egenskaper i den aktuella platformen eller för låta användaren styra byggningen med argument till anropet. Attributen if och unless styr ifall ett viss mål skall behandlas eller ej. Ant avgör detta genom att kontrollera ifall den namngivna egenskapen är definierat eller ej. Målet behandlas alltså endast ifall propertyn namngiven av if attributet är definierat och om egenskapen namngiven av unless attributet inte är definierad. Ifall målet saknar if och/eller unless attribut behandlas det alltid. En egenskap anses definierad ifall den någonstans tidigare (genom ett <property> element eller genom import utifrån) har fått ett värde, ingen hänsyn tas alltså till värdet av egenskapen. Naturligtvis kan både if och unless förekomma samtidigt för ett och samma mål Tasks Tasks är de viktigaste elementen i buildfilen, task elementen i ett mål berättar för ant vilka operationer och i vilken ordning de skall utföras. Ett stort antal tasks för olika ändamål

6 distribueras tillsammans med ant, dessa indelas i två olika uppsättningar, inbyggda och optional. Bland de inbyggda tasksen finns sådana som utför grundläggande operationer som till exempel manipulation av filsystemet (skapa-, radera- och kopiera filer, skapa kataloger osv.), tasks som anropar andra ant buildfiler eller startar helt andra program, manipulerar egenskaper inom ant eller sprider tasks på flera exekveringstrådar. I denna grupp finns även tasks som kompilerar olika källkodsfiler, paketerar filer i olika former eller manipulerar text och XML filer. Bland gruppen optional tasks finns stöd för scriptspråk, olika former av källkodsanalys, integration med olika automatiserade testramverk och versionshanteringssystem. Skulle det råka sig att man behöver göra något som det inte redan finns en inbyggd task är det möjligt att ansluta tasks som skrivits av andra utvecklare eller som man skrivit själv genom taskdef elementet. Det är oftast en bra ide att kontrollera att någon annan inte redan skrivit en task för det man vill göra innan man börjar skriva sin egen, förvånansvärt ofta finns det redan någon annan som skrivit en task för att lösa problemet <property> elementet och properties Properties fungerar som variabler eller konstanter när projektet behandlas, de låter en till exempel definiera sökvägar och namn på ett sätt som gör att de är lätta att underhålla, men kan också användas för att styra hur buildfilen behandlas. Egenskaper tilldelas värden genom att använda den speciella task:en <property> någonstans i buildfilen, <property> tasken tillåts till skillnad från andra tasks även direkt under <project> elementet i vilket fall egenskaper som definieras tilldelas sina värden innan behandlingen av mål inleds. Ett annat sätt att definiera egenskaper är att importera värden antingen från kommandotolkens environment variabler, eller läsas ur speciella property filer. 3.4 Utöka ant Även om ant levereras med en utomordentlig verktygslåda för de flesta tänkbara situationer kan det vara nödvändigt ibland att anpassa existerande tasks eller göra helt nya för att integrera system som redan finns i omgivningen. Ant erbjuder två områden som är tänkta för utökning, tasks och loggare. Genom att skapa nya tasks utökar man den uppsättning av funktioner som ant distribueras med, detta är intressant om man vill ansluta till ett nytt eller ett existerande verktyg som inte stöds av ant, eller om man behöver styra behandlingen på nåt speciellt sätt, till exempel importera egenskaper från en databas. Att utöka tasks är enkelt och uppmuntras aktivt av utvecklarna. Varje ant task är en java klass med klassen org.apache.tools.ant.task som anfader. Ett antal klasser förutom denna är också designade för att användas som bas för utökning, till exempel JDBCTask klassen som är tänkt att fungera som startpunkt för utökningar som har med databaser att göra. Loggare är moduler som bevakar byggprocessen och fångar upp de meddelanden som tasks producerar allt eftersom de arbetar. Ant är från början konfigurerat med ett antal loggare, en standard loggare som skriver meddelanden till konsolen, en loggare som skriver dem till en fil i XML form (perfekt att generera till exempel HTML sidor för intranät sidor) och slutligen en loggare som skickar det samlade resultatet som elektronisk post, till exempel till en e-postlista för utvecklarna. Man kan tänka sig att en organisation kan

7 vilja skriva in resultatet av till exempel test eller källkodsanalys tasksen i en databas för att kunna analysera hur projektet fortskrider. Möjligheterna för utvidgning är i det närmaste obegränsade, fördelen med att utöka med tasks är att det som produceras är platformsoberoende och alla medlemmar i projektet oberoende av den miljö de arbetar i direkt kan dra nytta av dem. Detta till skilland från om man implementerat samma sak i form av script eller binära applikationer där de antagligen krävt omkompilering. Trots detta är det dock värt att minnas att ant är ett bygghanteringssystem först och främst. Vissa saker är enklare och leder till bättre hanterlighet om de implementeras separat, speciellt om de inte direkt har med bygghanteringen att göra. 4 Ant för utvecklaren Även om ant kan användas som en enkel make ersättare för Java är det i situationer när omgivningen är dynamisk som en stabil, täckande, platformsoberoende och gemensam byggmiljö som dessutom kan integreras och anpassas till varierande miljöer verkligen kommer till sin rätt. Att bygga automatiskt innebär förutom inbesparingar i repetitivt och tråkigt arbete även att risken för problem orsakade av slarv eller missförstånd minskar. Efter som alla använder samma verktyg och samma buildfil betyder det att projektet byggs på exakt samma sätt oberoende om man byggt från kommmandotolken, ett IDE eller som del i ett automatiserat byggsystem. Dessutom betyder det att man, med hjälp av versionshantering, kan bygga äldre versioner av projektet på precis samma sätt oberoende av. 4.1 Kompilering och pre-processing Ant stöder i standardutförande förutom den vanliga java kompilatorn javac, som distribueras med Suns JDK även alternativa kompilatorer för java som till exempel Jikes, Symantec s sj eller GNU projektets GCJ. Kompilering av Java Server Pages websidor går också bra att integrera i byggprocessen med hjälp av JspC tasken. Genom ant-contrib 1 projektet har man även möjlighet att kompilera och länka andra språk som C/C++ och Fortran, till exempel om en del av projektet är baserat på dessa språk. Förutom rena språk finns även stöd för ett antal pre-processorer och mallbehandlings program. Just pre-processorer, och malloperationer är bekväma att få med i en automatiserad byggprocess eftersom de ofta kan vara besvärliga att komma ihåg att köra, och köra på samma sätt, om man gjort ändringar i källfilerna. Bland de pre-processorer som stödjs i standardutförande hittar man JavaCC och JJTree, för kompilator utveckling och IContract som stöd för design by contract utveckling. 4.2 Integrering med verktyg Ofta bestämmer man sig inom en organisation för en enda integrerad utvecklingsmiljö (IDE) som alla deltagare i projektet förväntas använda. Styrkan i att använda en IDE för utveckling är att ett program har full koll på alla delar, allt från källkods editor, till felsökning och distribution. För små och koncentrerade team fungerar detta bra men det leder dock till att man bundit hela organisationen till en tillverkare av ett system som 1

8 man har väldigt liten kontroll över, och som dessutom oftast endast finns tillgängligt för en viss platform och ett visst operativsystem. Att bestämma sig för att använda ant som byggplatform betyder att man kan ge eftergifter på de standardiseringar man gör på andra områden. Ant är inte en ersättning för ett IDE, koncentrationen är på att underlätta byggande och de saker som byggandet involverar, inte på att stöda manipulerande av kod, integrerad hjälp eller liknande. Ant kan dock med fördel användas i kombination med ett IDE, integration är dessutom möjlig i flera etablerade och populära IDE:n som till exempel Eclipse 2 eller SunONE 3 och även i ett flertal olika editorer som till exempel GNU/Emacs. Fördelen med detta upplägg är att var och en utvecklare kan använda de verktyg i den miljö som bäst stöder just hans arbete. 4.3 Unit testing Ant kan även hjälpa till att strömlinjeforma testdrivet eller stegvis utvecklande. Testdrivet utvecklande karakteriseras av att utveckling sker en funktion åt gången och av att varje implementering av en ny funktion föregås av att man först skriver en mängd test som skall bekräfta att funktionen fungerar som den bör. När man anser att funktionaliteten är implementerad kompileras modulen och testen utförs, när alla test har passerats utan problem är funktionaliteten komplett och man fortsätter till nästa. Fördelen är att allt eftersom utvecklingen fortskrider visar resultaten av testen dels att allt fungerar var för sig, men också att man under utvecklingen av senare funktionalitet inte omedvetet har gjort val som gör att de ändre delarna av programmet sluatat fungera korrekt. Nackdelen är naturligtvis att utvecklingen blir mer arbetsam i och med att man skriver flera test för varje funktion men och att man dessutom får ett extra steg i sin planera-programmera-komilera-kör cyckel. Genom att integrera testningen i byggprocessen behöver man inte skilt köra testen utan de körs naturligt i samband med att man kompilerar och man ser direkt om man är klar att fortsätta till nästa funktionalitet. För att göra test skrivandet möjligast enkelt, det är trots allt en hel del extra arbete, finns flera ramverk som tillhandahåller grunden för tests och ett sätt att utföra testen automatiskt. Ant stöder i standardutförande tester skrivna för JUnit ramverket men kan som bekant byggas ut för att stöda även andra. JUnit var det första populära ramverket för Java testning, och är nu beprövat, populärt och i det närmaste standard. 5 Centraliserat byggande Hittils har byggandet främst behandlats som nåt som äger rum på varje utvecklares arbetsstation och flera gånger per dag, till och med per timme under utvecklingsprocessen. En stor del av de funktioner som ant erbjuder är speciellt lämpade för centraliserat byggande eller som ett sorts Software Configuration Manangenet system enligt hur J. Estublier beskriver ett sådant i [Est00]. Centraliserat byggande är en rutin där hela projektet allt eftersom arbetet fortskrider byggs på en central server, till exempel varje natt efter att alla utvecklare checkat in sina updateringar för dagen eller till och med oftare, varje gång en ändring har checkats in. 2 Eclipse Integrated Developers Environment 3

9 En dylik rutin hjälper att snabbt fånga upp problem som kan uppstå vid integrering och samtidigt tillhandahålla kontinuerligt en updaterad version av projektet till för testning och evaluering. Ant kan användas för att skapa ett helt automatiserat centralt byggsystem som hämtar källkod från källkodslagret, bygger, testar, analyserar produkten och rapporterar problem och status på ett antal olika möjliga sätt. 5.1 Versionshantering Iden i versionshantering är enkel, varje gång en fil sparas skapas en ny version av filen. På så sätt skapas en komplett historik över de ändringar som gjorts i filen och det blir möjligt att gå tillbaka och återställa, eller bara visa, filen som den var vid en tidigare tidpunkt, helt eller delvis. Att kunna återställa äldre versioner av filer är speciellt värdefullt i mjukvaruutveckling eftersom det gör det möjligt att jämföra den källkod som använts för att skapa olika versioner av en applikation till exempel för att få reda på när ett visst beteende introducerats. Det gör också riskerna med att omstrukturera koden mindre eftersom man alltid har möjlighet att återställa koden till det läge den var tidigare. Många versionshanteringsssytem låter en dessutom underhålla parallela versioner vilket betyder att man kan fortsätta att underhålla äldre versioner av koden, även om man gjort stora förändringar i en nyare version. Versionshanteringen gör det också möjligt att hålla reda på när och vilken utvecklare som bidragit med vilken del av koden, ner till enstakt kod rader. Detta ger naturligtvis en möjlighet att samla statistik och ge bättre underlag för att veta var i teamet det behövs mer skolning eller uppföljning. Ant integrerat med ett stort antal versionshanteringssytem både komersiella som Rational ClearCase, Microsoft SourceSafe och OpenSource verktyg som CVS och Subversion gör det möjligt att i en central byggning uppsättning alltid arbeta med den senaste versionen av materialet i projektet utan att någon manuellt behöver ingripa. 5.2 Källkodsanalys och standard Det är ofta som del i ett uppföljnings och lägeskonstroll rutiner viktigt att kunna göra kontinuerlig analys material i projektet. Man beräknar olika sorters statistik för källkoden i projektet till exempel för att upptäcka funktioner som bör splittras i mindre delar för att öka läsbarheten, funktioner med hög komplexitet, eller helt enkelt som ett enkelt mått på hur arbetet fortskrider. Den centrala byggprocessen är klart det lämpligaste stället att utföra dessa test på. Detta främst eftersom det ofta tar tid att utföra dessa beräkningar och det skulle störa flödet i utvecklingsarbetet, men också eftersom varje utvecklare ofta endast har tillgång till de delar som denne för tillfället arbetar med och därför inte kan ge en bra helhets bild. Program som Checkstyle 4 integrerar med ant i byggprocessen för att varna för ett stort antal farliga konstruktioner och orsaker till dålig läsbarhet. Många av dessa farliga konstruktioner fångas inte upp av kompilatorn eftersom de inte är syntaktiskt felaktiga utan endast logiska och ofta leder till problem som är svåra att diagnostisera. Förutom att analysera koden kan CheckStyle användas för att upprätthålla rent stilmässiga regler eller en enhetlig kodstandard för en organisation. Man kan till exem- 4

10 pel bestämma att variabler och klasser skall döpas enligt vissa regler, kontrollera att källkodsfiler uppfyller olika sorters storleks ramar, att koden kommentarats tillräckligt, och att dessa finns på rätta ställen. 5.3 Packetering och installation När Java program kompileras producerar kompilatorn en skild så kallad.class fil för varje klass i applikationen. Eftersom detta snabbt blir besvärligt att underhålla och hantera på grund av det stora antalet filer och kataloger som krävs burkar man packetera ihop alla klassfiler tillsammans i ett så kallat JAR arkiv. En JAR fil innehåller alla de klasser och kataloger som krävs för att representera en applikation eller ett funktionsbibliotek. En jar kan också fungera som en exekverbar enhet. I sådana fall innehåller JAR filen också extra information om den klass fil som skall användas som startpunkt för applikationen samt annan information om applikationen. Eftersom detta paketeringsarbete är en så central del i skapandet av en java applikation innehåller Ant även en rad tasks för att bygga JAR filer och även andra sorters arkiv. För att förenkla skapandet av speciella JAR filer, WAR filer, som används för att paketera servlets, java program som fungerar som del i webapplikationer, finns även en speciell task. När alla paket är skapade blir det också intressant att automatiskt kunna distribuera dessa på olika vis, och eventuellt även att automatiskt installera dem på olika sätt och i olika konfigurationer. Ren distribution är möjlig genom till exempel <copy> tasken som förutom för att kopiera inom det lokala filsystemet också kan användas för att kopiera till delade skivor eller genom WebDAV över internet till en server någon annanstans, om detta inte är möjligt eller lämpligt finns även möjlighet att använda FTP för överföring. För mer avancerad installation (deployment) av till exempel webbapplikationer i Enterprise Java Beans miljö finns stöd för ett flertal populära servrar. Ofta distribueras installations tasks även av den tillverkare som skapat servern. 6 Konklusion Allt detta är dock inte helt utan problem och begränsnignar. I [Lou02] tar Steve Loughran upp ett antal av dessa, vissa är problem i Ant andra är problem som uppstår ur den platform Ant baserats på. Bland andra nämns att stora projekt förblir komplicerade, oberoende av Ant eller vilket bygghantering system som helst. Alla projekt behöver fortfarande någom som kan hålla koll på vilka delar som är beroende av vilka andra, man behöver fortfarande en sund plan för hur projektet skall styras och någon måste vara ansvarig och ha kontroll över utvecklingen. En annan punkt som tas upp är det faktum att man forfarande behöver alla de delar som annars ingår i ett strukturerat byggande, till exempel versionshantering och nåt sätt att följa upp felrapporter. Utan dessa spelar ant ingen roll, Ant fungerar endast som en knutpunkt för andra delar i byggprocessen och bidrar egentligen inte med något konkret, endast styrning. Detta är både en nackdel of fördel, jämfört med helt integrerade system är en Ant baserad miljö mer komplicerad och arbetsdryg att underhålla eftersom ett stort antal olika program måste interagera med varandra. Men det är även en fördel eftersom man då kan välja de verktyg som är mest lämpliga för situationen ur funktionalitet och kostnadssynvinkel, en del kan också bytas ut utan att nödvändigtvis påverka de andra.

11 Ant hjälper till att förenkla de tråkiga delarna av mjukvaruutveckling genom att på ett stabilt och portabelt sätt automatisera dem. På så vis kan Ant också hjälpa till att återskapa en del av det roliga i arbetet från det mekaniskt och tråkiga och byrokratiska vi ibland tvingas utstå. Referenser [BBB03] Stephane Bailliez, Nicola Ken Barozzi, and Jacques Bergeron. Apache Ant User Manual. The Apache Software Foundation, [Est00] [Fel79] Jacky Estublier. Software configuration management: a roadmap. In Proceedings of the conference on The future of Software engineering, pages ACM Press, Stuart I. Feldman. Make-a program for maintaining computer programs. Software - Practice and Experience, 9(4):255 65, [Lou02] Steve Loughran. Ant in anger. in anger.html, 2002.

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

emopluppen Användning av Ant Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC) emopluppen Användning av "Ant" Version: 1.4 ( 2002/04/26 07:27:52 UTC) Niklas Backlund Sammanfattning Det här dokumentet handlar om programmet Ant, som är en byggmiljö för programutvecklingsprojekt. Dess

Läs mer

Programmering i C++ Kompilering från kommandoraden

Programmering i C++ Kompilering från kommandoraden Programmering i C++ Kompilering från kommandoraden Sven Gestegård Robertz Datavetenskap, LTH 9 november 2015 Sammanfattning Ibland vill man, av olika anledningar, inte använda en stor integrerad utvecklingsmiljö

Läs mer

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse Verktyg och Utvecklingsmiljö Föreläsning 2 Eclipse Verktyg Modern programutveckling innebär att man måste behärska ett antal verktyg. Editorer Kompilatorer Avlusare(debugger) Versionshantering(kommer i

Läs mer

A ToolGuide for Eclipse: En fördjupning i några av verktygen i Eclipse och hur de underlättar XP s practices

A ToolGuide for Eclipse: En fördjupning i några av verktygen i Eclipse och hur de underlättar XP s practices A ToolGuide for Eclipse: En fördjupning i några av verktygen i Eclipse och hur de underlättar XP s practices Mattias Jarheden och Thomas Forsström Sammanfattning Denna djupstudie försöker ge en inblick

Läs mer

Continuous Integration med Jenkins. Linus Tolke Enea Experts

Continuous Integration med Jenkins. Linus Tolke Enea Experts Continuous Integration med Jenkins Linus Tolke Enea Experts Föredraget Grunderna i mjukvaru-cm Trender inom mjukvaruutveckling Continuous Integration Vad är Jenkins Demo Jenkins i ArgoUML-projektet Problem

Läs mer

DI Studio 4.3 - nyheter

DI Studio 4.3 - nyheter DI Studio 4.3 - nyheter Sofie Eidensten och Patric Hamilton Copyright 2010 SAS Institute Inc. All rights reserved. 2 Varför DI Studio Snabbare utveckling Enklare underhåll Gör det överskådligt 3 Nyheter

Läs mer

Verktyg och Utvecklingsmiljö. Jochim von Hacht

Verktyg och Utvecklingsmiljö. Jochim von Hacht Verktyg och Utvecklingsmiljö Jochim von Hacht Verktyg Modern programutveckling innebär att man måste behärska ett antal verktyg Editorer Kompilatorer Avlusare (debugger) Versionhantering (kommer i projektkurs)

Läs mer

IDA kursmaterial Informationsblad make. make

IDA kursmaterial Informationsblad make. make make make är ett verktyg som främst används för att underhålla, uppdatera och återskapa program och filer. Det är dock ett generellt verktyg som kan användas även i många andra sammanhang. En avancerad

Läs mer

NetBeans 5.5. Avsikt. Projektfönster

NetBeans 5.5. Avsikt. Projektfönster NetBeans 5.5 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas. Eclipse Avsikt Att bekanta dig med Eclipse programmeringsmiljö, dvs att med hjälp av Eclipse 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till byte-kod

Läs mer

NetBeans 7. Avsikt. Projektfönster

NetBeans 7. Avsikt. Projektfönster NetBeans 7 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

Introduktion till programmering och Python Grundkurs i programmering med Python

Introduktion till programmering och Python Grundkurs i programmering med Python Introduktion till programmering och Python Hösten 2009 Dagens lektion Vad är programmering? Vad är en dator? Filer Att tala med datorer En första titt på Python 2 Vad är programmering? 3 VAD ÄR PROGRAMMERING?

Läs mer

Installationsbeskrivning

Installationsbeskrivning Installationsbeskrivning UND-07-T-06 DB03 Funktionalitet för att upptäcka fel i databasen 2011-12-22 Version: Beteckning: Status: 1.0 UND-07-T-06 Ändringshistorik Revision Datum Av Kommentar Granskare

Läs mer

Säkerställ er tillgänglighet Kommunikationsrapporteringsverktyg

Säkerställ er tillgänglighet Kommunikationsrapporteringsverktyg Säkerställ er tillgänglighet Kommunikationsrapporteringsverktyg Vad är Meridix Studio? Meridix Studio är ett verktyg som låter er analysera och följa upp er kommunikation via ett enkelt men kraftfullt

Läs mer

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson Rapport grupp 4 Software Engineering Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson 2009-10-29 Processer Sprinter Scrum har varit till stor hjälp för oss för att nå våra mål,

Läs mer

Calligra. En allmän inledning. Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll

Calligra. En allmän inledning. Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll En allmän inledning Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 1.1 Komponenter i Calligra.................................. 5 1.2 Översikt över funktioner i

Läs mer

CVS-Introduktion. CyberRymden Introduktion till CVS,17 november (27) Marcus Rejås

CVS-Introduktion. CyberRymden Introduktion till CVS,17 november (27) Marcus Rejås Introduktion till CVS,17 november 2002 1(27) CVS-Introduktion CyberRymden 2001-10-03 Marcus Rejås $Id: slides.tex,v 1.2 2002/11/17 18:16:40 rejas Exp $ Introduktion till CVS,17 november

Läs mer

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

Användning av testautomation inom Extendas utvecklingsorganisation

Användning av testautomation inom Extendas utvecklingsorganisation Testautomation Användning av testautomation inom Extendas utvecklingsorganisation Agenda Presentation av Extenda Vad är en POS? Test av POS Automatiska tester Sammanfattning 2 Kort historik 1982 Extenda

Läs mer

Editering, Kompilering och Exekvering av Javaprogram

Editering, Kompilering och Exekvering av Javaprogram UMEÅ UNIVERSITET Institutionen för informatik B.1, Programmeringens grunder, 5 poäng Editering, Kompilering och Exekvering av Javaprogram Introduktion Syftet med kursmomentet Programmeringens grunder (B.1)

Läs mer

SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR

SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR 2 Projekt mikrobasic PRO for AVR organiserar applikationer som projekt vilka består av en enda projektfil (med filändelsen.mbpav) och en eller flera

Läs mer

TDP005: Introduktion till Make

TDP005: Introduktion till Make TDP005: Introduktion till Make Jonas Lindgren jonas.lindgren@liu.se Torbjörn Lönnemark torbjorn.lonnemark@liu.se Niklas Hayer 2013-11-14 1 1 PROGRAMMET MAKE 2 1 Programmet make Om du kör make letar programmet

Läs mer

Objektorienterad programmering i Java I

Objektorienterad programmering i Java I Laboration 0 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: ca 2 3 timmar Att läsa: sidan 45 52 Syfte: Att ladda hem och installera utvecklingsmiljön Att skriva ditt första Javaprogram

Läs mer

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning PMM (Process Maturity Metrics) PMM är en metod för att mäta processmognad i utvecklingsprojekt. I korthet går metoden ut på att man utvärderar sin utvecklingsprocess med avseende på ett antal framgångsfaktorer

Läs mer

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på:

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på: Bilaga C Eclipse 1 Inledning Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på: www.eclipse.org help.eclipse.org www.eclipse.org/downloads/

Läs mer

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php Introlektion PHP är ett av de enklare språken att lära sig just pga. dess dynamiska struktur. Det används för att bygga upp båda stora och mindre system. Några vanliga system som använder sig av PHP är

Läs mer

Handbok Simond. Peter H. Grasch

Handbok Simond. Peter H. Grasch Peter H. Grasch 2 Innehåll 1 Inledning 6 2 Använda Simond 7 2.1 Användarinställning.................................... 7 2.2 Nätverksinställning..................................... 9 2.3 Inställning

Läs mer

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer. Informationsinfrastruktur 7.5 hp Mattias Nordlindh Inledning Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer. Dokumentet består av

Läs mer

Föreläsning 2 Verktyg m.m.

Föreläsning 2 Verktyg m.m. Föreläsning 2 Verktyg m.m. Innehåll Java-paket Utvecklingsmiljö (development environment) Hur man organiserar sin utvecklingsmiljö Verktyg (tools) Editorer, debuggers, IDE's (integrated development environments),

Läs mer

Introduktion till programmering. Programspråk och paradigmer

Introduktion till programmering. Programspråk och paradigmer Introduktion till programmering Programspråk och paradigmer Vad är ett programspråk? Aprogramming languageis a formal constructedlanguagedesigned to communicate instructions to a machine, particularly

Läs mer

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer Java: Utvecklingsverktyg, datatyper, kontrollstrukturer Sven-Olof Nyström Uppsala Universitet 13 juni 2005 1 Utvecklingsverktyg för Java Vi rekommenderar Suns utvecklingsverktyg (SDK, tidigare JDK), se

Läs mer

Storegate Pro Backup. Innehåll

Storegate Pro Backup. Innehåll Storegate Pro Backup Välkommen! I denna manual kan du bland annat läsa om funktioner och hur du ska konfigurerar programmet. Läs gärna vårt exempel om versionshantering och lagringsmängd innan du konfigurerar

Läs mer

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv

Läs mer

Bygg din egen verktygslåda till PC-DMIS. Workshop, PC-DMIS dagar 2015

Bygg din egen verktygslåda till PC-DMIS. Workshop, PC-DMIS dagar 2015 Bygg din egen verktygslåda till PC-DMIS Workshop, PC-DMIS dagar 2015 Vad ska vi prata om? Verktygsfält och Snabbknappar i PC-DMIS Koppla inbyggda funktioner till en knapp Koppla externa program Koppla

Läs mer

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: 2009-12-14 Mottagare: Visi Web kund

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: 2009-12-14 Mottagare: Visi Web kund Sida: 1(7) Installationsanvisningar VisiWeb Ansvarig: Visi Closetalk AB Version: 2.3 Datum: 2009-12-14 Mottagare: Visi Web kund Detta dokument Detta dokument beskriver hur man installerar VisiWeb på en

Läs mer

Testning av applikationer

Testning av applikationer Tentamen, (20 YH-poäng) Plats: Övningstenta Tid: Övningstenta Tillåtna hjälpmedel: Papper, penna, suddgummi, linjal. Ej tillåtna hjälpmedel: Datorer, mobiltelefoner, surfplattor, miniräknare, böcker, anteckningar,

Läs mer

Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips

Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips Lab1 Introduktion Förberedelse för planetlabben genom att kapsla in (skapa wrappers) systemanrop. 1 Syfte Få en känsla av hur Win32API fungerar, dvs programmerarens interface gentemot Windows. Känsla för

Läs mer

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1 Inlämningsuppgift : Finn 2D1418 Språkteknologi Christoffer Sabel E-post: csabel@kth.se 1 1. Inledning...3 2. Teori...3 2.1 Termdokumentmatrisen...3 2.2 Finn...4 3. Implementation...4 3.1 Databasen...4

Läs mer

Kom igång med TIS-Office

Kom igång med TIS-Office Kom igång med TIS-Office Denna guide hjälper dig att komma igång med TIS-Office, mer information om hur man använder programmet finns i manualer på TIS-Office CD-skivan och i den inbyggda hjälpfunktionen

Läs mer

TDP005 Projekt: Objektorienterat system

TDP005 Projekt: Objektorienterat system . TDP005 Projekt: Objektorienterat system Laboration i Make och CMake Författare Filip Strömbäck Höstterminen 2016 Version 1.0 2016-10-04 Introduktion I denna lab kommer vi titta närmare på två verktyg

Läs mer

Versionshantering. Problem som uppstår i större (samt även mindre) projekt:

Versionshantering. Problem som uppstår i större (samt även mindre) projekt: Versionshantering Problem som uppstår i större (samt även mindre) projekt: Samtidiga ändringar. Kålle och Ada öppnar samma fil för redigering vid var sin dator. Om Kålle först sparar sina ändringar och

Läs mer

INSTALLATIONSGUIDE TILL ANDROID UTVECKLINGSMILJÖ

INSTALLATIONSGUIDE TILL ANDROID UTVECKLINGSMILJÖ INSTALLATIONSGUIDE TILL ANDROID UTVECKLINGSMILJÖ Denna installationsguide berättar hur man installerar och kommer igång med utveckling för Android. Guiden är skriven som en komplettering till min bok Programmera

Läs mer

Mål med lektionen! Repetera och befästa kunskaperna.

Mål med lektionen! Repetera och befästa kunskaperna. Entity Framework Mål med lektionen! Repetera och befästa kunskaperna. Vad lektionen omfattar Repetera och gå igenom kursen lite snabbt. Vilka problem vill vi lösa? Vi arbetar med Webbapplikationer Vi kommer

Läs mer

Datacentertjänster PaaS

Datacentertjänster PaaS Datacentertjänster PaaS Innehåll Datacentertjänst PaaS 3 Allmänt om tjänsten 3 En säker miljö för kundensa containers 3 En agil infrastruktur 3 Fördelar med tjänsten 3 Vad ingår i tjänsten 4 Applikationer

Läs mer

Installationsbeskrivning för CAB Service Platform med CABInstall

Installationsbeskrivning för CAB Service Platform med CABInstall Installationsbeskrivning för CAB Service Platform med CABInstall INLEDNING... 2 INSTALLATION... 3 AVANCERAD INSTALLATION... 10 YTTERLIGARE INFORMATION... 11 Proxy... 11 Sida 1 av 12 Inledning Denna beskrivning

Läs mer

Installationsanvisningar VisiMIX. Ansvarig: Visi System AB Version: 2.2 Datum: 2009-02-17 Mottagare: Visi MIX kund

Installationsanvisningar VisiMIX. Ansvarig: Visi System AB Version: 2.2 Datum: 2009-02-17 Mottagare: Visi MIX kund Sida: 1(5) Installationsanvisningar VisiMIX Ansvarig: Visi System AB Version: 2.2 Datum: 2009-02-17 Mottagare: Visi MIX kund Detta dokument Detta dokument beskriver hur man installerar Visi Mix på en server.

Läs mer

ANVÄNDAR MANUAL. SESAM 800 RX MC Manager

ANVÄNDAR MANUAL. SESAM 800 RX MC Manager ANVÄNDAR MANUAL SESAM 800 RX MC Manager Åkerströms Björbo AB Box 7, SE-780 45 Gagnef, Sweden street Björbovägen 143 SE-785 45 Björbo, Sweden Phone +46 241 250 00 Fax +46 241 232 99 E-mail sales@akerstroms.com

Läs mer

LVDB i GEOSECMA. Innehåll. Inledning. Produkt: GEOSECMA Modul: LVDB Skapad för Version: Uppdaterad:

LVDB i GEOSECMA. Innehåll. Inledning. Produkt: GEOSECMA Modul: LVDB Skapad för Version: Uppdaterad: Produkt: GEOSECMA Modul: LVDB Skapad för Version: 10.4.1 Uppdaterad: 2018-04-13 LVDB i GEOSECMA Innehåll Inledning... 1 Hämta XML från NVDB... 2 Full LVDB-import... 3 Inkrementell LVDB-import... 4 NVDB

Läs mer

Insamlingsverktyg - teknisk beskrivning av metadataformuläret

Insamlingsverktyg - teknisk beskrivning av metadataformuläret Digitala leveranser Insamlingsverktyg - teknisk beskrivning av metadataformuläret Innehåll: Allmänt Layout och uppbyggnad Hur man använder programmet Starta Fylla i metadata Skapa metadatafiler och leverera

Läs mer

Grundkurs i programmering - intro

Grundkurs i programmering - intro Grundkurs i programmering - intro Linda Mannila 4.9.2007 Dagens föreläsning Allmän kursinformation: mål, syfte, upplägg, examination, litteratur, etc. Hur arbetar en dator? Hur vi får datorn att förstå

Läs mer

www.drakbutiken.se IDE USB kabel Windows XP, Vista 7 löäzxcvbnmqwertyuiopåasdfghjklöäz [Version 1.4, 2009-11-01] www.drakbutiken.

www.drakbutiken.se IDE USB kabel Windows XP, Vista 7 löäzxcvbnmqwertyuiopåasdfghjklöäz [Version 1.4, 2009-11-01] www.drakbutiken. qwertyuiopåasdfghjklöäzxcvbnmqwe rtyuiopåasdfghjklöäzxcvbnmqwertyu iopåasdfghjklöäzxcvbnmqwertyuiopå asdfghjklöäzxcvbnmqwertyuiopåasdf ghjklöäzxcvbnmqwertyuiopåasdfghjk www.drakbutiken.se IDE USB kabel

Läs mer

DRAFT. CVS kurs laboration 1 Checka in, ut och uppdatera. Marcus Rejås. 17 november 2002

DRAFT. CVS kurs laboration 1 Checka in, ut och uppdatera. Marcus Rejås. 17 november 2002 CVS kurs laboration 1 Checka in, ut och uppdatera Marcus Rejås 17 november 2002 Innehåll 1 Inledning 1 2 Förberedelser (om du skall köra CVS på en remote server) 1 2.1 Installera CYGWIN......................................

Läs mer

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe In- och utmatning i Unix Program i Unix skriver och läser till och från filer. En fil betyder här en vanlig fil med text eller binära data, ett tangentbord, en skärm, ett annat program etc. Innan ett program

Läs mer

LVDB i GEOSECMA. Innehåll. Inledning. Produkt: GEOSECMA Modul: LVDB Skapad för Version: Uppdaterad:

LVDB i GEOSECMA. Innehåll. Inledning. Produkt: GEOSECMA Modul: LVDB Skapad för Version: Uppdaterad: Produkt: GEOSECMA Modul: LVDB Skapad för Version: 10.4.1 Uppdaterad: 2019-05-21 LVDB i GEOSECMA Innehåll Inledning... 1 Hämta XML från NVDB... 2 Full LVDB-import... 3 Inkentell LVDB-import... 4 NVDB inställningar...

Läs mer

prog: prog.c gcc -g -Wall prog.c /usr/local/bib/c/58an/modules/modul.o -o prog

prog: prog.c gcc -g -Wall prog.c /usr/local/bib/c/58an/modules/modul.o -o prog DSV Sid 1(10) *:58/ID100V Jozef Swiatycki Innehållsförteckning Inledning... 1 Raddelning, kommentarer, macros och inkludering... 4 Undertryckning av utskrifter från make... 6 Flera kommandon per mål...

Läs mer

LVDB i GEOSECMA. Innehåll. Produkt: GEOSECMA Modul: LVDB Skapad för Version: Uppdaterad:

LVDB i GEOSECMA. Innehåll. Produkt: GEOSECMA Modul: LVDB Skapad för Version: Uppdaterad: Produkt: GEOSECMA Modul: LVDB Skapad för Version: 10.4.1 Uppdaterad: 2018-02-20 LVDB i GEOSECMA Innehåll Hämta XML från NVDB... 2 Full LVDB-import... 3 Inkrementell LVDB-import... 4 NVDB inställningar...

Läs mer

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Tentamen i TDP004 Objektorienterad Programmering Praktisk del Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2011-04-28 Tid: 08-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 281456 Jourhavande kommer att besöka skrivsalarna ungefär

Läs mer

PROV. 13 JSP Standard Tag Library

PROV. 13 JSP Standard Tag Library 13 JSP Standard Tag Library 13.1 Bibliotek med nya JSP-kommandon 13.2 JSP Standard Tag Library (JSTL) 13.3 Filstruktur för webbapplikationer med JSTL 13.4 Deklaration av JSP-kommandon 13.5 Lägga till biblioteksfiler

Läs mer

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program Datateknik A, Syfte: Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program Att läsa: Lektion 1 Antal uppgifter: 3 Inlämning: Sker via inlämningsuppgifter

Läs mer

30 år av erfarenhet och branschexperts

30 år av erfarenhet och branschexperts 30 år av erfarenhet och branschexperts Integrerad Säkerhet Integrerad Säkerhet Varför överordnat system Användarvänlighet Kvalitet Trygghet Kostnadseffektivitet Varför ett överordnat system? Med stora

Läs mer

Uppdatera Mobilus Professional till version 3.2.1. * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Uppdatera Mobilus Professional till version 3.2.1. * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Uppdatera Mobilus Professional till version 3.2.1 Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Mobilus Digital Rehab AB * Filen MP.exe (Mobilus programmet) får inte användas

Läs mer

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10 Projekt Rapport RaidPlanner Jeanette Karlsson UD10 Abstrakt: Denna rapport handlar om mitt projekt i kursen Individuellt Mjukvaruutvecklings projekt. Rapporten kommer att ta upp hur jag gått tillväga,

Läs mer

Introduktion till programmering, hösten 2011

Introduktion till programmering, hösten 2011 Föreläsning 1 Programmering är ett hantverk. Det betyder att man inte kan läsa sig till den förmågan, man måste träna och man tränar genom att skriva mer och mer avancerade program. Programmering förutsätter

Läs mer

Dialogue Technologies April 2005

Dialogue Technologies April 2005 Dialogue Technologies April 2005 En typisk självbetjäningstjänst för web ser ut enligt följande En inledande text för att användaren skall förstå tjänsten En aktuell lista med de 10 vanligast frågorna

Läs mer

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Uppdatera Mobilus Professional till version 3.1.2 Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Mobilus Digital Rehab AB * Filen MP.exe (Mobilus programmet) får inte användas

Läs mer

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll FrontPage Express I programpaketet Internet Explorer 4.0 och 5.0 ingår också FrontPage Express som installeras vid en fullständig installation. Det är ett program som man kan använda för att skapa egna

Läs mer

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02) UMEÅ UNIVERSITET Institutionen för datavetenskap Thomas Johansson Oktober 1998 Programutveckling med Java Development Kit (JDK 1.1.x) och Programmers File Editor (PFE 7.02) Umeå universitet 901 87 Umeå.

Läs mer

Laboration 10 - Eclipse

Laboration 10 - Eclipse Laboration 10 - Eclipse Avsikten med laborationen är att du ska träna på att använda paket, att du ska packa några klassfiler i en jar-fil och slutligen använda innehållet i en jar-fil från en annan klass

Läs mer

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016 Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design Alex Gerdes, 2016 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon tripoly =

Läs mer

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande: WEBBUTVECKLING Ämnet webbutveckling behandlar de tekniker som används för att presentera och bearbeta information i webbläsaren samt utifrån dessa tekniker skapa och vidareutveckla statiska och dynamiska

Läs mer

Program. Kapitel make Program Interpreterande och kompilerande program

Program. Kapitel make Program Interpreterande och kompilerande program Kapitel 11 Program Detta kapitel är som synes mycket kort och nämner inte allt från föreläsningen. 11.1 Program Ett datorprogram är en samling instruktioner som beskriver något som en dator ska utföra.

Läs mer

ID1020 Introduktion av Maven. Dr. Jim Dowling

ID1020 Introduktion av Maven. Dr. Jim Dowling ID1020 Introduktion av Maven Dr. Jim Dowling jdowling@kth.se Vad använder ni för byggverktyg? Inget En IDE - NetBeans, Eclipse, IntelliJ, osv. Ant bättre* Maven Gradle *Gradle har en högre inlärningströskel

Läs mer

1 Vad är Versionshantering? 2 Git. 2.1 GitHub

1 Vad är Versionshantering? 2 Git. 2.1 GitHub 1 Vad är Versionshantering? Versionshantering (eller Version Control) är ett samlingsnamn för program som ger en användare möjlighet att komma åt tidigare versioner av dokument och spåra ändringar som

Läs mer

Webbserverprogrammering

Webbserverprogrammering Webbserverprogrammering WES Webbserverprogrammering Ämnet webbserverprogrammering behandlar funktionalitet för webblösningar och samspelet mellan beställare, användare, formgivare och utvecklare. Ämnets

Läs mer

Installationshandbok.

Installationshandbok. Installationshandbok Nintex USA LLC 2012, Alla rättigheter förbehållna. Med förbehåll för eventuella fel och förbiseenden. support@nintex.com www.nintex.com Innehåll 1. Installera Nintex Workflow 2010...

Läs mer

Uppgraderingsinstruktion för Tekis-FB Avisering version 6.3.1

Uppgraderingsinstruktion för Tekis-FB Avisering version 6.3.1 Uppgraderingsinstruktion för Tekis-FB Avisering version 6.3.1 Allmänt Releasen omfattar uppgradering av Tekis Aviseringsprogram version 6.3.1 (för både Tekis-FIR och Tekis-KID avisering) samt databasuppgradering

Läs mer

Administrationsmanual ImageBank 2

Administrationsmanual ImageBank 2 Administrationsmanual ImageBank 2 INNEHÅLL 1. Konventioner i manualen 3 2. Uppmärksamhetssymboler 3 3. Vad är imagebank SysAdmin 4 4. Guide för att snabbt komma igång 5 5. Uppgradera din imagebank 1.2

Läs mer

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar Skapa testfall Testing Köra testen Hitta fel Inspections and reviews Verifiera resultatet Formal methods Static analysis Completeness Verifiering Kvalitet Maintainability Validering Traceability Fault

Läs mer

LEX INSTRUKTION LEX LDAP

LEX INSTRUKTION LEX LDAP LEX INSTRUKTION LEX LDAP Innehållsförteckning LEX INSTRUKTION LEX LDAP... 1 1 INLEDNING... 1 2 INSTALLATION... 2 3 LEXLDAPSERVICE - KLIENTEN... 3 3.1 HUVUDFÖNSTER... 3 3.2 INSTÄLLNINGAR... 4 3.2.1 Lex...

Läs mer

Webbservrar, severskript & webbproduktion

Webbservrar, severskript & webbproduktion Webbprogrammering Webbservrar, severskript & webbproduktion 1 Vad är en webbserver En webbserver är en tjänst som lyssnar på port 80. Den hanterar tillgång till filer och kataloger genom att kommunicera

Läs mer

Releaseinformation för Remote Support Platform 3.0

Releaseinformation för Remote Support Platform 3.0 Releaseinformation Remote Support Platform for SAP Business One Dokumentversion: 1.0 2012-10-08 OFFENTLIGT Releaseinformation för Remote Support Platform 3.0 Alla länder Typografiska konventioner Teckenstil

Läs mer

Föreläsning 3. Programmering, C och programmeringsmiljö

Föreläsning 3. Programmering, C och programmeringsmiljö Föreläsning 3 Programmering, C och programmeringsmiljö Vad är programmering? Ett väldigt kraftfullt, effektivt och roligt sätt att kommunicera med en dator Att skapa program / applikationer till en dator

Läs mer

SurveyXact funktionsöversikt Version 6.3. Allmänt om SurveyXact

SurveyXact funktionsöversikt Version 6.3. Allmänt om SurveyXact SurveyXact funktionsöversikt Version 6.3 Allmänt om SurveyXact Flexibelt, webbaserat system 100% webbaserat system Inga lokala installationer av mjukvara eller kostnader för hårdvara Åtkomst via Internet

Läs mer

Nintex Workflow 2007 måste installeras på Microsoft Windows Server 2003 eller 2008.

Nintex Workflow 2007 måste installeras på Microsoft Windows Server 2003 eller 2008. Systemkrav Operativsystem Nintex Workflow 2007 måste installeras på Microsoft Windows Server 2003 eller 2008. Webbläsare Microsoft Internet Explorer 6.x. Dock rekommenderas Microsoft Internet Explorer

Läs mer

Så här skriver du ditt första program i C++

Så här skriver du ditt första program i C++ Så här skriver du ditt första program i C++ Introduktion till att skapa Solution, Project och källkodsfil i Visual Studio 2013 Författare Anne Norling Kurs: Strukturerad programmering med C++ Kurskod:1DV433

Läs mer

Federerad Roll Administration ÄR GROUPER EN MEDSPELARE? OVE OLANDER MITTUNIVERSITETET

Federerad Roll Administration ÄR GROUPER EN MEDSPELARE? OVE OLANDER MITTUNIVERSITETET Federerad Roll Administration ÄR GROUPER EN MEDSPELARE? OVE OLANDER MITTUNIVERSITETET Vad är/var problemet? NyA webben har behörigheter/roller via federerade attribut edupersonentitlement/gmai Studentcentrum

Läs mer

Inledande programmering med C# (1DV402) Introduktion till C#

Inledande programmering med C# (1DV402) Introduktion till C# Introduktion till C# Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i

Läs mer

Instruktioner. Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 3. Hem (SIDA 2)

Instruktioner. Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 3. Hem (SIDA 2) 1 Instruktioner Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 2. Logga in (SIDA 2) 3. Hem (SIDA 2) 4. Skapa/redigera sidor (SIDA 3) 41. Lägg till ny sida (SIDA 3) 42. Avancerat (SIDA 4) 5. Texteditor (SIDA

Läs mer

Installation och konfiguration av Matematikhuset 3.0 (skollicens) Installation via Group Policy och konfigurering av dataplacering

Installation och konfiguration av Matematikhuset 3.0 (skollicens) Installation via Group Policy och konfigurering av dataplacering Installation och konfiguration av Matematikhuset 3.0 (skollicens) Introduktion Till skillnad från den version av Matematikhuset som distribueras med Elevdatas Skolavtal innehåller skollicensversionen av

Läs mer

Gränssnitt för FakeGranska. Lars Mattsson

Gränssnitt för FakeGranska. Lars Mattsson Gränssnitt för FakeGranska av Lars Mattsson (larsmatt@kth.se) Innehållsförteckning 1 Introduktion...3 2 Genomförande:...3 3 Användning...5 4 Kända buggar:...6 5 Källförteckning...6 2 1 Introduktion Taken

Läs mer

Eclipse en handledning

Eclipse en handledning LUNDS TEKNISKA HÖGSKOLA EDAA01 Programmeringsteknik fördjupningskurs Institutionen för datavetenskap VT 2015 Eclipse en handledning 1 Inledning Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas

Läs mer

IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik

IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik IT OCH PROGRAMMERING I SKOLAN Jan Erik Moström Peter Vinnervik VILKA ÄR VI OCH VAD KOMMER VI ATT PRATA OM? Jan Erik Moström - undervisar på institutionen för datavetenskap Peter Vinnervik - doktorand vid

Läs mer

Installation och konfiguration av klientprogramvara 2c8 Modeling Tool

Installation och konfiguration av klientprogramvara 2c8 Modeling Tool Installation och konfiguration av klientprogramvara 2c8 Modeling Tool Hämta programpaket, MSI Aktuell version av klientprogramvaran finns tillgänglig för nedladdning på vår hemsida på adress http://www.2c8.com/

Läs mer

Lathund Blanketthotell Komma igång

Lathund Blanketthotell Komma igång Lathund Blanketthotell Komma igång Introduktion Denna lathund innehåller lite samlade råd och tips för de som ska använda tjänster från NT Smartwork. (För de som redan börjat använda Blanketthotellet finns

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

PKS5000PC hjälpmedel uppföljning

PKS5000PC hjälpmedel uppföljning 1 PKS5000PC Allmänt PKS5000PC är ett hjälpmedel och ett administrativt verktyg för PKS5000 systemet. Det hjälper och underlättar plockhanteringen, gör att ansvariga kan göra produktionsuppföljningar och

Läs mer

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018 Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design (DIT95) Niklas Broberg, 2018 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon

Läs mer

1 Installationsinstruktioner

1 Installationsinstruktioner 1 Installationsinstruktioner 1.1 Förbereda installationen Kontrollera systemkraven. Försäkra dig om att din dators hårdvara uppfyller de systemkrav som är specificerade. Vid installering av Engineering

Läs mer

SELLOUT. Version 2.5. eyescream information ab

SELLOUT. Version 2.5. eyescream information ab SELLOUT Version 2.5 av eyescream information ab Detta verk är skyddat av upphovsrättslagen och får ej helt eller delvis mångfaldigas! Sigurdsgatan 6 721 30 VÄSTERÅS 021-14 62 00 Artikelnummer: 5XXX PA9

Läs mer