= 빌드&배포 == 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과 같은 옵션을 필요로 한다.