131 lines
3.7 KiB
Plaintext
131 lines
3.7 KiB
Plaintext
= 빌드&배포
|
|
|
|
== Vite Bundling
|
|
SDL6 UI는 서비스 하기 위해 Bundling이 필요하다.
|
|
각 배포 대상에 따른 설정 파일은 .env.test , .env.development, .env.production 파일을 참고한다.
|
|
|
|
..env.production 예시
|
|
[source, properties]
|
|
----
|
|
# default env
|
|
VITE_NODE_ENV=production
|
|
VITE_API_URL=http://sdl.sec.samsung.net/administrator
|
|
VITE_DIST_PATH=../src/main/webapp/pp
|
|
# CONTEXT_PATH value must be end with '/'
|
|
VITE_WEB_CONTEXT_PATH=/
|
|
----
|
|
|
|
package.json 에 정의된 script에 따라 설정 파일이 적용된다.
|
|
|
|
.package.json
|
|
[source, json]
|
|
----
|
|
"scripts": {
|
|
"local": "vite --mode test",
|
|
"dev": "vite --mode development",
|
|
"prod": "vite --mode production",
|
|
"build": "vite build --mode production",
|
|
"build-test": "vite build --mode test",
|
|
"build-dev": "vite build --mode development",
|
|
"build-prod": "vite build --mode production",
|
|
"preview": "vite preview --mode production",
|
|
"preview-test": "vite preview --mode test",
|
|
"preview-dev": "vite preview --mode development",
|
|
"preview-prod": "vite preview --mode production",
|
|
"lint": "eslint src/**/*.{vue,js}"
|
|
},
|
|
----
|
|
|
|
*npm run local* 명령어를 실행할 경우 .env.test 파일이 적용되며, vite-dev-server가 실행된다.
|
|
vite-dev-server는 front-end 코드가 실시간으로 반영되므로 개발 시 편리하다.
|
|
|
|
*npm run preview* 명령어를 통해 빌드 된 결과물을 preview 서버를 통해 확인 할 수 있다.
|
|
반드시 *VITE_DIST_PATH* 에 Build 결과물이 존재해야 구동된다.
|
|
|
|
== SonarQube Scanner 를 통한 소스코드 정적 분석
|
|
|
|
* 먼저 SonarQube Scanner 를 설치한다.
|
|
|
|
----
|
|
npm install sonar-scanner -g
|
|
----
|
|
|
|
* 사용법 (Command Line)
|
|
|
|
----
|
|
cd sdl-base <1>
|
|
|
|
sonar-scanner -Dsonar.host.url=SonarQube서버URL -Dsonar.projectKey=프로젝트Key -Dsonar.projectName=프로젝트명 -Dsonar.projectVersion=프로젝트버전 -Dsonar.login=아이디 -Dsonar.password=패스워드 -Dsonar.sources=frontend/src <2>
|
|
----
|
|
|
|
<1> 분석하고자 하는 프로젝트로 이동한다.
|
|
<2> 설정한 파라미터값으로 실행한다.
|
|
|
|
.파라미터 설명
|
|
[width="100%",options="header"]
|
|
|=====
|
|
| key | value(예) | 설명 | 비고
|
|
|
|
| sonar.host.url
|
|
| \http://guide.sonarqube.sec.samsung.net
|
|
| SonarQube 서버 URL
|
|
| 필수
|
|
|
|
| sonar.projectKey
|
|
| my:project
|
|
| 분석하고자 하는 프로젝트의 고유한 키 값
|
|
| 필수
|
|
|
|
| sonar.projectName
|
|
| "my project for test"
|
|
| 프로젝트 이름
|
|
|
|
|
|
|
| sonar.projectVersion
|
|
| 1.0
|
|
| 프로젝트 버전
|
|
|
|
|
|
|
| sonar.login
|
|
| user01
|
|
| SonarQube 서버 로그인 ID
|
|
| 필수
|
|
|
|
| sonar.password
|
|
| passwd01
|
|
| SonarQube 서버 로그인 패스워드
|
|
| 필수
|
|
|
|
| sonar.sources
|
|
| frontend/src
|
|
| 소스파일이 위치한 디렉토리
|
|
|
|
|
|=====
|
|
|
|
NOTE: sonar-scanner 파라미터 관련 자세한 내용은 https://docs.sonarqube.org/latest/analysis/analysis-parameters/[공식문서^]를 참조한다.
|
|
|
|
== Front-end 빌드
|
|
|
|
운영시스템에 배포 하기 위해서 cmd창에서 *npm run-script build* 명령어를 실행한다.
|
|
빌드 결과는 .env 파일의 *VITE_DIST_PATH* 경로에 생성된다.
|
|
|
|
image::build_01.png[build_01,800,600]
|
|
|
|
image::build_02.png[]
|
|
|
|
== Back-end 빌드
|
|
|
|
Back-end는 Maven을 이용해 Build 하고 있다. maven 명령어를 이용해 빌드한다.
|
|
패키징 시 배포 대상별로 Profile을 적용 할 수 있다.
|
|
----
|
|
mvn clean package -Pprod
|
|
----
|
|
-Pprod 옵션을 경우 src/main/resource-prod 아래의 설정파일들이 적용되어 패키징 된다.
|
|
|
|
image::build_03.png[build_03,800,600]
|
|
|
|
IMPORTANT: SDL 6.0은 Spring Profile이 적용되어 서버 실행시 -Dspring.profiles.active=local과 같은 옵션을 필요로 한다.
|
|
|
|
|
|
|