내용으로 건너뛰기
권남
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
추적:
springframework:springboot:jar_publish
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== Spring Boot Jar Publish ====== * [[https://docs.spring.io/spring-boot/docs/2.0.4.RELEASE/gradle-plugin/reference/html/|Spring Boot Gradle Plugin Reference Guide]] 2.x 기준 * [[springframework:springboot|SpringBoot]] jar 파일을 [[:nexus|SonaType Nexus]] 등 Maven Repository에 Publish 하기 ===== maven plugin 사용 ===== * [[gradle:maven|Gradle Maven Deployment]]이 적용되면 자동으로 **uploadBootArchives** 태스크 생성됨. <code groovy> uploadBootArchives { repositories { mavenDeployer { repository url: 'https://repo.example.com' } } } </code> ===== maven-publish plugin 사용 ===== * [[gradle:maven_publishing|Gradle Maven Publish Plugin]] <code groovy> apply plugin: 'maven' apply plugin: "maven-publish" bootJar.enabled = true jar.enabled = true bootJar { mainClassName = "yourMainClass" } publishing { publications { bootJava(MavenPublication) { groupId 'your group id' // 생략하면 프로젝트 기본값 artifactId 'artifact id' // 생략하면 프로젝트 기본값 artifact bootJar } } repositories { maven { credentials { username '리포지토리 접속 username' password '리포지토리 접속 password' } url 'http://nexus.host.name/content/repositories/releases/' } } } // 불필요하게 publsh.dependsOn bootJar 를 붙일 경우 생성된 jar 에 의존성 *.jar 파일들이 추가가 안되는 형상이 있었음. </code> ===== maven-publish plugin 사용 prod/dev 구분해서 release/snapshot 올리기 ===== * ''publishing.gradle''<code> import java.time.LocalDateTime import java.time.format.DateTimeFormatter apply plugin: 'maven' apply plugin: "maven-publish" def isProduction = Boolean.getBoolean('production') def buildDateTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy.MM.dd.HH.mm.ss")) version = isProduction ? buildDateTime + "PROD" : buildDateTime + "DEV-SNAPSHOT" def initializePublishing(String targetGroupId, String targetArtifactId) { publishing { publications { zipUpload(MavenPublication) { groupId targetGroupId artifactId targetArtifactId artifact project.bootJar } } repositories { maven { credentials { username 'username' password 'passwd' } def releaseRepoUrl = 'http://repositories/releases/' def snapshotRepoUrl = 'http://repositories/snapshots/' url version.endsWith('SNAPSHOT') ? snapshotRepoUrl : releaseRepoUrl } } } } ext { initializePublishing = this.&initializePublishing } </code> * ''build.gradle''에서<code> apply from: 'publishing.gradle' bootJar.enabled = true jar.enabled = true bootJar { mainClassName = "yourMainClass" } initializePublishing('groupId', 'artifactId') </code>
springframework/springboot/jar_publish.txt
· 마지막으로 수정됨: 2019/06/12 14:24 저자
kwon37xi
문서 도구
문서 보기
이전 판
역링크
맨 위로