Repositori maven Anda di GitHub

Pengembang dapat mengunggah perpustakaan mereka ke GitHub, yang memiliki plugin khusus situs-maven-plugin . Mari kita lihat contoh penggunaannya:

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

Mari kita lihat apa yang tertulis di sini.

Pembuatan repositori lokal sementara disorot dengan warna biru. Secara teknis ini hanya sebuah folder, tetapi kami membutuhkan Maven untuk memperlakukannya sebagai repositori terpisah.

Kami menyoroti dengan warna merah peluncuran plugin maven-deploy-plugin , di mana kami menunjukkan bahwa pustaka yang dikompilasi harus ditempatkan di repositori sementara ini.

Dan terakhir, plugin site-maven-plugin disorot dengan warna hijau , yang akan mengambil semua file dari repositori dan memasukkannya ke GitHub. Beberapa penjelasan diperlukan di sini. Semua parameter dibagi menjadi dua kelompok: apa yang harus diisi dan di mana harus diisi.

Yang kami isi:
  • outputDirectory - direktori tempat mendapatkan file untuk komit
  • termasuk - mengatur topeng file untuk dikomit
Di mana kami mengunggah:
  • repositoryOwner - nama pemilik repositori di GitHub
  • repositoryName - nama repositori
  • cabang - setel cabang repositori di GitHub yang akan dikomit
  • pesan - pesan yang akan ditambahkan saat melakukan

Anda juga perlu menentukan login dan kata sandi untuk repositori Anda di Maven setting.xml :

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

Untuk menghubungkan (menggunakan) perpustakaan dari repositori GitHub ke proyek lain, Anda perlu menentukan repositori ini di pom.xml Anda :

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

Setelah itu, Maven akan mengerti dari mana mendapatkan perpustakaan itu.

  • [nama-proyek] adalah nama proyek, dalam kasus kami SuperLibrary
  • [nama pengguna] adalah login di GitHub, dalam contoh ini adalah pengguna codegym

Mengemas rakitan menjadi image Docker

Kita hidup di zaman baru, ketika proyek sebagai hasil perakitan dapat ditempatkan di repositori Maven, atau mungkin di penyimpanan buruh pelabuhan.

Untuk berteman dengan Maven dan Docker, kita memerlukan plugin docker-maven-plugin . Tidak ada yang rumit:

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

Disorot dengan warna biru adalah titik di mana kami menambahkan bangunan tujuan ke fase paket pembangunan. Itu bisa dipanggil dengan perintah mvn docker:build .

Tag dockerDirectory menentukan folder tempat Dockerfile berada. Dan nama gambar diatur menggunakan tag imageName .

Jika proyek dikemas dalam file jar, maka file buruh pelabuhan akan terlihat seperti ini:

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

Jika Anda mengemas aplikasi web, Anda mungkin perlu menambahkan Tomcat:

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