CodeGym /행동 /All lectures for KO purposes /유용한 Maven 플러그인

유용한 Maven 플러그인

All lectures for KO purposes
레벨 1 , 레슨 933
사용 가능

GitHub의 maven 저장소

개발자는 특별한 site-maven-plugin 플러그인이 있는 GitHub에 라이브러리를 업로드할 수 있습니다 . 사용 예를 살펴보겠습니다.

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

여기에 쓰여진 것을 보자.

임시 로컬 리포지토리 생성은 파란색으로 강조 표시됩니다. 기술적으로는 폴더일 뿐이지만 별도의 저장소로 취급하려면 Maven이 필요합니다.

maven-deploy-plugin 플러그인의 시작을 빨간색으로 강조 표시했으며 여기서 컴파일된 라이브러리를 이 임시 저장소에 배치해야 한다고 표시했습니다.

마지막으로 site-maven-plugin 플러그인이 녹색으로 강조 표시되어 저장소에서 모든 파일을 가져와 GitHub에 커밋해야 합니다. 여기에 약간의 설명이 필요합니다. 모든 매개변수는 채울 대상과 채울 위치의 두 그룹으로 나뉩니다.

작성 내용:
  • outputDirectory - 커밋할 파일을 가져올 디렉터리
  • 포함 - 커밋할 파일의 마스크를 설정합니다.
업로드 위치:
  • repositoryOwner - GitHub의 저장소 소유자 이름
  • repositoryName - 저장소 이름
  • branch - 커밋할 GitHub의 리포지토리 분기를 설정합니다.
  • message - 커밋 시 추가될 메시지

또한 Maven setting.xml 에서 리포지토리에 대한 로그인 및 암호를 지정해야 합니다 .

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

GitHub 리포지토리의 라이브러리를 다른 프로젝트에 연결(사용)하려면 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>

그런 다음 Maven은 라이브러리를 가져올 위치를 이해합니다.

  • [name-project] 는 프로젝트의 이름입니다. 이 경우에는 SuperLibrary입니다.
  • [username] 은 GitHub의 로그인이며, 이 예에서는 codegym-user입니다.

어셈블리를 Docker 이미지로 압축

우리는 조립 결과 프로젝트를 Maven 리포지토리 또는 도커 스토리지에 배치할 수 있는 새로운 시대에 살고 있습니다.

Maven과 Docker를 친구로 만들려면 docker-maven-plugin 플러그인이 필요합니다 . 복잡하지 않음:

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

파란색으로 강조 표시된 부분은 빌드의 패키지 단계에 목표 bulid를 추가한 지점입니다. mvn docker:build 명령 으로 호출할 수 있습니다 .

dockerDirectory 태그는 Dockerfile이 있는 폴더를 지정합니다. 그리고 imageName 태그를 사용하여 이미지의 이름을 설정합니다 .

프로젝트가 jar 파일로 패키징된 경우 docker 파일은 다음과 같이 표시됩니다.

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

웹 애플리케이션을 패키징하는 경우 Tomcat을 추가해야 할 수 있습니다.

FROM tomcat8
ADD sample.war ${CATALINA_HOME}/webapps/ROOT.war
CMD ${CATALINA_HOME}/bin/catalina.sh run
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION