...
För att utveckla och underhålla SKLTP samt köra automatiska enhetstester och integrationstester i utvecklingsmiljön krävs:
- Java SE 7 och 8(OpenJDK) 8 och 11
- Maven 3
- Git klient
- MySQL Community Server och GUI för den Workbench
Val av IDE är valfritt men om mest av oss använder IntellijIdea IDE. Där finns Git GUI by default.
Om Eclipse används så rekommenderas följande pluginer för versionshantering av källkod:
- EGit för Git
Också det finns bra fristående Git-client Sourcetree
För att exekvera systemtester används:
- SoapUI för funktionella tester
- Klientcertifikat
- Gatling för lasttester och robusthetstester
För mer information om hur Gatling används se /wiki/spaces/SKLTP/pages/3187836104
Utöver detta behövs rättigheter till följande:
- Github push rättigheter
- Rättigheter till Ineras Jenkins server.
- Rättigheter till Ineras Nexus
- JIRA och Confluence wiki
- Tillgång till fysiska testmiljöer
Git för utvecklare
/wiki/spaces/SKLTP/pages/3187835204
Maven repo
Flera SKLTP-komponenter använder egenutvecklade bibliotek. Dessa finns publicerade i Ineras Nexus. Lägg till nedanstående i Maven settings för att använda dess maven-repo som mirror.
Kodblock |
---|
<mirrors>
<mirror>
<id>Basefarm Nexus</id>
<name>Basefarm Nexus Public Mirror</name>
<url>https://nexus.drift.inera.se/repository/maven-public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors> |
License headers
Maven bygget kontrollerar att det finns licensheadrar i källkodsfilerna (till exempel, när man kör: mvn clean install) genom att använda com.mycila.maven-license-plugin:maven-license-plugin.
...
/wiki/spaces/SKLTP/pages/3187836104
Release Management
För Maven används för att skapa releaser används Maven och Mavens release-plugin. Kontrollera att följande kod finns i rot-pom'en.
Info |
---|
<build> |
För att Mavens deploy plugin ska veta var den ska deploya releaserna skall följande finnas i projektets root pom (eller i parent till root pom). Url:erna kan man sedan sätta i den lokala (eller Jenkins) Maven settings filen (se kommande exempel)
Info |
---|
<distributionManagement> |
Maven settings fil (~/.m2/settings.xml) bör sedan sättas upp enligt nedan för att peka ut var dependencies skall hämtas (via mirror) och vart den skall deploya filerna (Till Ineras Nexus i exemplet nedan) samt användaruppgifter till Ineras Nexus (i sektionen "servers").
...
<mirrors>
<!-- Mirror används för att hämta dependencies via Inera Nexus -->
<mirror>
<id>Inera Nexus</id>
<name>Inera Nexus Public Mirror</name>
<url>https://nexus.inera.se/repository/maven-public/</url>
<mirrorOf>*,!grails</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>skltp</id>
<properties>
<!-- Ställer om URL för snapshots och release i distributionManagement i pom.xml, pom.xml måste använda dessa för att det ska fungera -->
<releases-nexus-url>https://nexus.inera.se/repository/SKLTP-Releases/</releases-nexus-url>
<snapshot-nexus-url>https://nexus.inera.se/repository/SKLTP-Snapshots/</snapshot-nexus-url>
</properties>
</profile>
</profiles>
<servers>
<!-- Release Repot på Inera Nexus, exakt repo pekas ut av profilen -->
<server>
<id>release-nexus</id>
<username>xxxxxxxxx</username>
<password>pppppppppp</password>
</server>
<!-- Snapshot Repot på Inera Nexus, exakt repo pekas ut av profilen -->
<server>
<id>snapshot-nexus</id>
<username>xxxxxxxxx</username>
<password>pppppppppp</password>
</server>
</servers>
Normalt bör en release skapas via ett releasejobb i Ineras Jenkins server men går att skapa lokalt genom:
Kodblock |
---|
mvn release:prepare
mvn release:perform |
eller genom att manuellt uppdatera versioner, skapa taggar, pusha till github och köra:
Kodblock |
---|
mvn deploy |
Artifakterna kommer nu laddas upp på Ineras Nexus och vara publikt tillgängliga under group-id se.skltp
, Följ denna länk för vidare instruktioner.
Paketnamn
SKLTP komponenter
...