Repositori maven sampeyan ing GitHub

Pangembang bisa ngunggah perpustakaan menyang GitHub, sing duwe plugin site-maven-plugin khusus . Ayo ndeleng conto panggunaane:

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

Ayo ndeleng apa sing ditulis ing kene.

Nggawe repositori lokal sementara disorot nganggo warna biru. Teknis iku mung folder, nanging kita kudu Maven kanggo nambani minangka gudang kapisah.

We disorot ing abang Bukak saka plugin maven-deploy-plugin , ngendi kita nunjukaké sing perpustakaan nyawiji kudu diselehake ing repositori sauntara iki.

Lan pungkasane, plugin site-maven-plugin disorot nganggo warna ijo , sing kudu njupuk kabeh file saka repositori lan tundhuk menyang GitHub. Sawetara panjelasan dibutuhake ing kene. Kabeh paramèter dipérang dadi rong klompok: apa sing kudu diisi lan ing endi sing kudu diisi.

Apa sing kita ngisi:
  • outputDirectory - direktori ngendi kanggo njaluk file kanggo commit
  • kalebu - nyetel topeng file sing bakal ditindakake
Ing endi kita upload:
  • repositoryOwner - jeneng pemilik repositori ing GitHub
  • repositoryName - jeneng repositori
  • branch - nyetel cabang repositori ing GitHub sing bakal ditindakake
  • pesen - pesen sing bakal ditambahake nalika nindakake

Sampeyan uga kudu nemtokake login lan sandhi kanggo gudang ing Maven setting.xml :

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

Kanggo nyambungake (nggunakake) perpustakaan saka repositori GitHub menyang proyek liyane, sampeyan kudu nemtokake gudang iki ing pom.xml sampeyan :

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

Sawisé iku, Maven bakal ngerti ngendi kanggo njaluk perpustakaan saka.

  • [jeneng-proyek] minangka jeneng proyek, ing kasus kita SuperLibrary
  • [jeneng panganggo] yaiku login ing GitHub, contone yaiku codegym-user

Ngempalaken perakitan menyang gambar Docker

We manggon ing wektu anyar, nalika proyèk minangka asil saka Déwan bisa diselehake ing gudang Maven, utawa Mungkin ing panyimpenan docker.

Kanggo nggawe kanca Maven lan Docker, kita butuh plugin docker-maven-plugin . Ora ana sing 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>

Sorot biru minangka titik ing ngendi kita nambahake bulid gol menyang fase paket mbangun. Bisa diarani kanthi mvn docker:build command .

Tag dockerDirectory nemtokake folder ing ngendi Dockerfile dumunung. Lan jeneng gambar disetel nggunakake tag imageName .

Yen proyek kasebut dikemas ing file jar, banjur file docker bakal katon kaya iki:

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

Yen sampeyan ngemas aplikasi web, sampeyan bisa uga kudu nambah Tomcat:

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