Gå till slutet av bannern
Gå till början av bannern

Generella instruktioner för utvecklare

Hoppa till slutet på meta-data
Gå till början av metadata

Du visar en gammal version av den här sidan. Visa nuvarande version.

Jämför med nuvarande Visa sidhistorik

« Föregående Version 40 Nästa »

Utvecklingsmiljö

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 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

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.

Om bygget falerar p.g.a. att licensheadrar saknas:

[INFO] Missing header in: /Users/hakan/Documents/scm/svn_skltp/jms-admin-web_tr/src/main/java/se/skltp/admin/core/services/HdLabAmq.java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE

Det kan man lösa genom:

mvn license:format

Verifiering

Innan release av en komponent ska funktionella tester, lasttester och robusthetstester genomföras.

/wiki/spaces/SKLTP/pages/3187836104

Release Management

För att skapa releaser används Maven och Mavens release-plugin. Kontrollera att följande kod finns i rot-pom'en.

 <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)

<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:

mvn release:prepare
mvn release:perform

eller genom att manuellt uppdatera versioner, skapa taggar, pusha till github och köra:

mvn deploy


Artifakterna kommer nu laddas upp på  Ineras Nexus och vara publikt tillgängliga under group-id se.skltp,.

Paketnamn

SKLTP komponenter

se.skltp.<komponentnamn>, tex se.skltp.agp

Aggregerande tjänster

se.skltp.aggregatingservices.<tjänstedomän>.<tjänsteinteraktion>, tex se.skltp.aggregatingservices.riv.clinicalprocess.healthcond.basic.getaggregatedmeasurement

Anpassningstjänster

se.skltp.adapterservices.<adapternamn>, tex se.skltp.adapterservices.DominoHttp10Adapter

Virtuella tjänster

se.skltp.virtualservices.<tjänstedomän>, tex se.skltp.virtualservices.clinicalprocess.activityprescription.actoutcome.


  • Inga etiketter