Jämförda versioner

Nyckel

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

...

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

...

titlepom.xml

...

.

...

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)

Kodblock
titlepom.xml
<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>

För att releasepluginen ska kunna pusha till remote git måste url:er till git konfigureras i projektets root pom. Exempel:

Kodblock
titlepom.xml
<scm>
    <url>http://github.com/skltp/vp</url>
    <connection>scm:git:https://github.com:443/skltp/vp.git</connection>
    <developerConnection>scm:git:https://github.com:443/skltp/vp.git</developerConnection>
    <tag>HEAD</tag>
</scm>

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

...