Az Ön nagy tárháza a GitHubon

A fejlesztők feltölthetik könyvtárukat a GitHubba, amelyhez egy speciális site-maven-plugin bővítmény tartozik . Nézzünk egy példát a használatára:

<project>
    <properties>
        <github.global.server>github</github.global.server>
        <github.maven-plugin>0.9</github.maven-plugin>
    </properties>
 
    <distributionManagement>
    	<repository>
            <id>internal.repo</id>
        	<name>Temporary Staging Repository</name>
            <url>file://${project.build.directory}/mvn-repo</url>
    	</repository>
    </distributionManagement>
 
    <build>
    	<plugins>
        	<plugin>
                <artifactId>maven-deploy-plugin</artifactId>
    	        <version>2.8.1</version>
            	<configuration>
                    <altDeploymentRepository>
                        internal.repo::default::file://${project.build.directory}/mvn-repo
                    </altDeploymentRepository>
            	</configuration>
        	</plugin>
        	<plugin>
                <groupId>com.github.github</groupId>
                <artifactId>site-maven-plugin</artifactId>
                <version>${github.maven-plugin}</version>
            	<configuration>
                	<message>Maven artifacts for ${project.version}</message>
                    <noJekyll>true</noJekyll>
                    <outputDirectory>${project.build.directory}/mvn-repo</outputDirectory>
                	<branch>refs/heads/mvn-repo</branch>
                    <includes>**/*</includes>
                	<repositoryName>SuperLibrary</repositoryName>
                	<repositoryOwner>codegymu-student</repositoryOwner>
            	</configuration>
            	<executions>
                	<execution>
                    	<goals>
                            <goal>site</goal>
                    	</goals>
                        <phase>deploy</phase>
                	</execution>
            	</executions>
        	</plugin>
    	</plugins>
    </build>
 
</project>

Lássuk, mi van itt leírva.

Az ideiglenes helyi adattár létrehozása kék színnel van kiemelve. Technikailag ez csak egy mappa, de szükségünk van a Maven-re, hogy külön tárolóként kezelje.

Pirossal kiemeltük a maven-deploy-plugin plugin elindítását , ahol jeleztük, hogy a lefordított könyvtárat ebben az ideiglenes tárolóban kell elhelyezni.

És végül a site-maven-plugin beépülő modul zöld színnel van kiemelve , amely az összes fájlt átveszi a tárolóból, és véglegesíti őket a GitHubon. Itt némi magyarázatra van szükség. Minden paraméter két csoportra oszlik: mit kell kitölteni és hol kell kitölteni.

Amit kitöltünk:
  • outputDirectory - könyvtár, ahonnan a véglegesítéshez szükséges fájlok találhatók
  • include - beállítja a véglegesítendő fájlok maszkját
Hová töltsük fel:
  • repositoryOwner – a lerakattulajdonos neve a GitHubon
  • repositoryName – tárnév
  • ág – beállítja azt a lerakatágat a GitHubon, amelyre el kell kötelezni
  • üzenet – a véglegesítéskor hozzáadott üzenet

Ezenkívül meg kell adnia a tárhely bejelentkezési nevét és jelszavát a Maven setting.xml fájlban :

<settings>
  <servers>
    <server>
  	<id>github</id>
      <username>[username]</username>
      <password>[password]</password>
    </server>
  </servers>
</settings>

Egy GitHub-tárolóból egy másik projekthez való könyvtár csatlakoztatásához (használatához) meg kell adnia ezt a tárat a pom.xml fájlban :

<repositories>
    <repository>
        <id>[name-project]-mvn-repo</id>
        <url>https://raw.github.com/[username]/[name-project]/mvn-repo/</url>
    	<snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
    	</snapshots>
	</repository>
</repositories>

Ezek után Maven megérti, honnan szerezheti be a könyvtárat.

  • [név-projekt] a projekt neve, esetünkben a SuperLibrary
  • [felhasználónév] a bejelentkezés a GitHubon, a példában pedig codegym-user

Az összeállítás Docker-képbe csomagolása

Új időket élünk, amikor az összeszerelés eredményeként a projektek a Maven repositoryba, esetleg docker tárolóba kerülhetnek.

Ahhoz, hogy Maven és Docker barátok legyenek, szükségünk van a docker-maven-plugin bővítményre . Semmi bonyolult:

  <build>
    <plugins>
  	  <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
    	<version>0.4.10</version>
    	<configuration>
          <dockerDirectory>${project.basedir}</dockerDirectory>
      	  <imageName>codegym/${project.artifactId}</imageName>
    	</configuration>
    	<executions>
      	  <execution>
            <phase>package</phase>
        	<goals>
          	<goal>build</goal>
        	</goals>
      	  </execution>
    	</executions>
  	  </plugin>
    </plugins>
  </build>

Kékkel van kiemelve az a pont, ahol a cél bulidot hozzáadtuk a build csomagfázisához. Meghívható az mvn docker:build paranccsal .

A dockerDirectory címke azt a mappát adja meg, amelyben a Dockerfile található. A kép neve pedig az imageName címkével van beállítva .

Ha a projekt egy jar fájlba van csomagolva, akkor a docker fájl valahogy így fog kinézni:

FROM java:11
EXPOSE 8080
ADD /target/demo.jar demo.jar
ENTRYPOINT ["java","-jar","demo.jar"]

Ha webalkalmazást csomagol, akkor szükség lehet a Tomcat hozzáadására:

FROM tomcat8
ADD sample.war ${CATALINA_HOME}/webapps/ROOT.war
CMD ${CATALINA_HOME}/bin/catalina.sh run