CodeGym/Cursos Java/Módulo 3/Plug-ins úteis do Maven

Plug-ins úteis do Maven

Disponível

Seu repositório maven no GitHub

Os desenvolvedores podem fazer upload de sua biblioteca para o GitHub, para o qual possui um plug-in especial do site-maven-plugin . Vejamos um exemplo de sua utilização:

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

Vamos ver o que está escrito aqui.

A criação de um repositório local temporário é destacada em azul. Tecnicamente é apenas uma pasta, mas precisamos que o Maven a trate como um repositório separado.

Destacamos em vermelho o lançamento do plugin maven-deploy-plugin , onde indicamos que a biblioteca compilada deve ser colocada neste repositório temporário.

E, finalmente, o plug-in site-maven-plugin é destacado em verde , que deve pegar todos os arquivos do repositório e enviá-los para o GitHub. Alguma explicação é necessária aqui. Todos os parâmetros são divididos em dois grupos: o que preencher e onde preencher.

O que preenchemos:
  • outputDirectory - diretório onde obter arquivos para commit
  • includes - define a máscara de arquivos a serem confirmados
Onde carregamos:
  • repositoryOwner - o nome do proprietário do repositório no GitHub
  • repositoryName - nome do repositório
  • ramificação - define a ramificação do repositório no GitHub para a qual confirmar
  • message - a mensagem que será adicionada ao confirmar

Você também precisa especificar o login e a senha do seu repositório no Maven setting.xml :

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

Para conectar (usar) uma biblioteca de um repositório GitHub a outro projeto, você precisa especificar este repositório em seu pom.xml :

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

Depois disso, o Maven entenderá de onde obter a biblioteca.

  • [name-project] é o nome do projeto, no nosso caso SuperLibrary
  • [username] é o login no GitHub, no exemplo é codegym-user

Empacotando o assembly em uma imagem do Docker

Vivemos em um novo tempo, quando os projetos como resultado da montagem podem ser colocados no repositório Maven ou talvez no armazenamento do docker.

Para tornar o Maven e o Docker amigos, precisamos do plug-in docker-maven-plugin . Nada complicado:

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

Destacado em azul está o ponto em que adicionamos o objetivo bulid à fase de pacote da construção. Ele pode ser chamado com o comando mvn docker:build .

A tag dockerDirectory especifica a pasta onde o Dockerfile está localizado. E o nome da imagem é definido usando a tag imageName .

Se o projeto estiver empacotado em um arquivo jar, o arquivo docker será mais ou menos assim:

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

Se você estiver empacotando um aplicativo da Web, talvez seja necessário adicionar o Tomcat:

FROM tomcat8
ADD sample.war ${CATALINA_HOME}/webapps/ROOT.war
CMD ${CATALINA_HOME}/bin/catalina.sh run
Comentários
  • Populares
  • Novas
  • Antigas
Você precisa acessar para deixar um comentário
Esta página ainda não tem nenhum comentário