Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

...

För att utveckla och underhålla SKLTP samt köra automatiska enhetstester och integrationstester i utvecklingsmiljön krävs:

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:

Också det finns bra fristående Git-client Sourcetree


För att exekvera systemtester används:


Utöver detta behövs rättigheter till följande:

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>
  <pluginManagement>
   <plugins>
     <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-release-plugin</artifactId>
       <version>2.5.1</version>
       <configuration>
        <autoVersionSubmodules>true</autoVersionSubmodules>
        <tagNameFormat>v@{project.version}</tagNameFormat>
        <localCheckout>true</localCheckout>
       </configuration>
     </plugin>
    </plugins>
  </pluginManagement>
 </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>
   <repository>
      <id>release-nexus</id>
      <name>Release Nexus</name>
      <url>${releases-nexus-url}</url>
   </repository>
   <snapshotRepository>
      <id>snapshot-nexus</id>
      <name>Snapshot Nexus</name>
      <url>${snapshot-nexus-url}</url>
   </snapshotRepository>
</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

...