License
워크스페이스 전체의 라이선스를 관리합니다: 자체 코드에 대한 LICENSE 파일 및 소스 코드 헤더를 동기화하고(license.source), 모든 의존성이 라이선스 허용 목록을 준수하는지 확인합니다(license.dependencies).
사용법
섹션 제목: “사용법”생성기 실행
섹션 제목: “생성기 실행”pnpm nx g @aws/nx-plugin:licenseyarn nx g @aws/nx-plugin:licensenpx nx g @aws/nx-plugin:licensebunx nx g @aws/nx-plugin:license- 설치 Nx Console VSCode Plugin 아직 설치하지 않았다면
- VSCode에서 Nx 콘솔 열기
- 클릭
Generate (UI)"Common Nx Commands" 섹션에서 - 검색
@aws/nx-plugin - license - 필수 매개변수 입력
- 클릭
Generate
| 매개변수 | 타입 | 기본값 | 설명 |
|---|---|---|---|
| license | Apache-2.0 | MIT | ASL | Apache-2.0 | 선택한 라이선스의 SPDX 라이선스 식별자 |
| copyrightHolder | string | Amazon.com, Inc. or its affiliates | 저작권 보유자, 기본적으로 LICENSE 파일 및 소스 파일 헤더에 포함됩니다. |
| dependencyCheck | boolean | true | 구성된 허용 목록 외의 라이선스를 선언하는 의존성이 있을 때 실패하는 license-check 대상을 구성합니다. |
| preferInstallDependencies | boolean | true | 생성기 실행 후 의존성 설치를 선호할지 여부입니다. 여러 생성기를 일괄 처리할 때 설치를 연기하려면 false로 설정하세요 (후속 생성기가 Nx 프로젝트 그래프를 계산할 수 있도록 필요한 경우 설치는 여전히 실행됩니다); 마지막에 한 번만 설치합니다. |
생성기 출력
섹션 제목: “생성기 출력”생성기는 다음 파일을 생성하거나 업데이트합니다:
- nx.json lint 타겟이 라이선스 동기화 생성기를 실행하도록 구성되며 license-check 타겟에 의존합니다
- aws-nx-plugin.config.mts 라이선스 소스 동기화(
license.source) 및 의존성 확인(license.dependencies)을 위한 구성
라이선스 헤더 및 파일
섹션 제목: “라이선스 헤더 및 파일”생성기는 lint 타겟의 일부로 실행되는 sync generator를 등록하여 소스 파일에 올바른 라이선스 헤더가 포함되어 있고, 프로젝트에 LICENSE 파일이 포함되어 있으며, package.json 및 pyproject.toml에 라이선스 메타데이터가 설정되어 있는지 확인합니다.
워크플로
섹션 제목: “워크플로”프로젝트를 빌드할 때마다(lint 타겟이 실행될 때), 라이선스 동기화 생성기는 프로젝트의 라이선스가 구성과 일치하는지 확인합니다. 동기화되지 않은 항목이 감지되면 다음과 같은 메시지가 표시됩니다:
NX The workspace is out of sync
[@aws/nx-plugin:license#sync]: Project LICENSE files are out of sync:- LICENSE- packages/<my-project>LICENSE
Project package.json files are out of sync:- package.json
Project pyproject.toml files are out of sync:- pyproject.toml- packages/<my-python-project>/pyproject.toml
License headers are out of sync in the following source files:- packages/<my-project>/src/index.ts- packages/<my-python-project>/main.py
This will result in an error in CI.
? Would you like to sync the identified changes to get your workspace up to date?Yes, sync the changes and run the tasksNo, run the tasks without syncing the changesYes를 선택하여 변경 사항을 동기화합니다.
동기화 동작
섹션 제목: “동기화 동작”라이선스 동기화 생성기는 세 가지 주요 작업을 수행합니다:
1. 소스 파일 라이선스 헤더 동기화
섹션 제목: “1. 소스 파일 라이선스 헤더 동기화”동기화 생성기가 실행되면 워크스페이스의 모든 소스 코드 파일(구성 기반)에 적절한 라이선스 헤더가 포함되어 있는지 확인합니다. 헤더는 파일의 첫 번째 블록 주석 또는 연속된 라인 주석 시리즈로 작성됩니다(파일에 shebang/hashbang이 있는 경우 그 다음에 작성됨).
2. LICENSE 파일 동기화
섹션 제목: “2. LICENSE 파일 동기화”동기화 생성기가 실행되면 루트 LICENSE 파일이 구성된 라이선스와 일치하는지 확인하고, 워크스페이스의 모든 하위 프로젝트에도 올바른 LICENSE 파일이 포함되어 있는지 확인합니다.
3. 프로젝트 파일의 라이선스 정보 동기화
섹션 제목: “3. 프로젝트 파일의 라이선스 정보 동기화”동기화 생성기가 실행되면 package.json 및 pyproject.toml 파일의 license 필드가 구성된 라이선스로 설정되어 있는지 확인합니다.
헤더 및 파일 구성
섹션 제목: “헤더 및 파일 구성”구성은 워크스페이스 루트의 aws-nx-plugin.config.mts 파일에 정의됩니다.
SPDX 및 저작권 보유자
섹션 제목: “SPDX 및 저작권 보유자”선택한 라이선스는 spdx 구성 속성을 통해 언제든지 업데이트할 수 있습니다:
export default { license: { source: { spdx: 'MIT', }, },} satisfies AwsNxPluginConfig;동기화 생성기가 실행되면 모든 LICENSE 파일, package.json 및 pyproject.toml 파일이 구성된 라이선스를 반영하도록 업데이트됩니다.
일부 LICENSE 파일에 포함되는 저작권 보유자 및 저작권 연도를 추가로 구성할 수 있습니다:
export default { license: { source: { spdx: 'MIT', copyrightHolder: 'Amazon.com, Inc. or its affiliates', copyrightYear: 2025, }, },} satisfies AwsNxPluginConfig;라이선스 헤더 내용
섹션 제목: “라이선스 헤더 내용”라이선스 헤더 내용은 두 가지 방법으로 구성할 수 있습니다:
- 인라인 내용 사용:
export default { license: { source: { header: { content: { lines: [ 'Copyright: My Company, Incorporated.', 'Licensed under the MIT License', 'All rights reserved', ]; } // ... format configuration } } }} satisfies AwsNxPluginConfig;- 파일에서 로드:
export default { license: { source: { header: { content: { filePath: 'license-header.txt'; // relative to workspace root } // ... format configuration } } }} satisfies AwsNxPluginConfig;헤더 형식
섹션 제목: “헤더 형식”glob 패턴을 사용하여 다양한 파일 유형에 대해 라이선스 헤더의 형식을 지정할 수 있습니다. 형식 구성은 라인 주석, 블록 주석 또는 둘의 조합을 지원합니다:
export default { license: { source: { header: { content: { lines: ['Copyright notice here'], }, format: { // Line comments '**/*.ts': { lineStart: '// ', }, // Block comments '**/*.css': { blockStart: '/*', blockEnd: '*/', }, // Block comments with line prefixes '**/*.java': { blockStart: '/*', lineStart: ' * ', blockEnd: ' */', }, // Line comments with header/footer '**/*.py': { blockStart: '# ------------', lineStart: '# ', blockEnd: '# ------------', }, }, }, }, },} satisfies AwsNxPluginConfig;형식 구성은 다음을 지원합니다:
blockStart: 라이선스 내용 앞에 작성되는 텍스트(예: 블록 주석 시작)lineStart: 라이선스 내용의 각 줄 앞에 추가되는 텍스트lineEnd: 라이선스 내용의 각 줄 뒤에 추가되는 텍스트blockEnd: 라이선스 내용 뒤에 작성되는 텍스트(예: 블록 주석 종료)
사용자 정의 주석 구문
섹션 제목: “사용자 정의 주석 구문”기본적으로 지원되지 않는 파일 유형의 경우, 사용자 정의 주석 구문을 지정하여 동기화 생성기가 이러한 파일 유형에서 기존 라이선스 헤더를 식별하는 방법을 알려줄 수 있습니다.
export default { license: { source: { header: { content: { lines: ['My license header'], }, format: { '**/*.xyz': { lineStart: '## ', }, }, commentSyntax: { xyz: { line: '##', // Define line comment syntax }, abc: { block: { // Define block comment syntax start: '<!--', end: '-->', }, }, }, }, }, },} satisfies AwsNxPluginConfig;헤더 동기화에서 파일 제외
섹션 제목: “헤더 동기화에서 파일 제외”기본적으로 git 저장소에서는 모든 .gitignore 파일이 적용되어 버전 관리되는 파일만 동기화됩니다. git이 아닌 저장소에서는 구성에서 명시적으로 제외하지 않는 한 모든 파일이 고려됩니다.
glob 패턴을 사용하여 라이선스 헤더 동기화에서 추가 파일을 제외할 수 있습니다:
export default { license: { source: { header: { content: { lines: ['My license header'], }, format: { '**/*.ts': { lineStart: '// ', }, }, exclude: ['**/generated/**', '**/dist/**', 'some-specific-file.ts'], }, }, },} satisfies AwsNxPluginConfig;파일 동기화에서 프로젝트 제외
섹션 제목: “파일 동기화에서 프로젝트 제외”기본적으로 모든 LICENSE 파일, package.json 파일 및 pyproject.toml 파일이 구성된 라이선스와 동기화됩니다.
glob 패턴을 사용하여 동기화에서 특정 프로젝트 또는 파일을 제외할 수 있습니다:
export default { license: { source: { files: { exclude: [ // do not sync LICENSE file, package.json or pyproject.toml 'packages/excluded-project', // do not sync LICENSE file, but sync package.json and/or pyproject.toml 'apps/internal/LICENSE', ]; } } }} satisfies AwsNxPluginConfig;라이선스 동기화 비활성화
섹션 제목: “라이선스 동기화 비활성화”라이선스 소스 동기화는 구성에 license.source 키가 있으면 활성화됩니다. 비활성화하려면:
aws-nx-plugin.config.mts의 구성에서license.source섹션을 제거합니다(의존성 라이선스 확인을 계속 원하는 경우license.dependencies는 유지할 수 있습니다)- 동기화 생성기를 완전히 제거하려면
targetDefaults.lint.syncGenerators에서@aws/nx-plugin:license#sync생성기를 제거합니다
라이선스 동기화를 다시 활성화하려면 license 생성기를 다시 실행하면 됩니다.
의존성 라이선스 확인
섹션 제목: “의존성 라이선스 확인”license 생성기는 프로젝트의 의존성(또는 전이 의존성) 중 하나가 허용 목록에 없는 라이선스를 선언할 때 실패하는 license-check 타겟도 구성합니다.
실행 방법
섹션 제목: “실행 방법”생성기는 루트 project.json에 license-check 타겟을 작성합니다:
{ "targets": { "license-check": { "executor": "@aws/nx-plugin:license-check", "cache": true, "inputs": [ "{workspaceRoot}/pnpm-lock.yaml", "{workspaceRoot}/aws-nx-plugin.config.mts" ], "options": {} } }}inputs는 워크스페이스에 맞게 계산됩니다: 실제로 존재하는 lockfile만 aws-nx-plugin.config.mts와 함께 포함되며, Python 의존성 확인이 활성화된 경우(즉, Python 수집기가 구성된 경우) {workspaceRoot}/**/uv.lock glob이 추가됩니다.
확인을 직접 실행할 수 있습니다:
pnpm nx license-checkyarn nx license-checknpx nx license-checkbunx nx license-check결과는 lockfile 및 aws-nx-plugin.config.mts에 대해 캐시됩니다 — 변경 사항이 없으면 재실행이 즉시 완료됩니다.
수집기는 스캔 대상을 결정합니다. npmCollector는 license-checker-rseidelsohn을 사용하고, pythonCollector는 pip-licenses를 사용합니다. 설치된 의존성이 없으면 검사할 항목이 없어 확인이 통과됩니다.
lint/build의 일부로 실행
섹션 제목: “lint/build의 일부로 실행”의존성 라이선스 확인은 워크스페이스의 프로젝트를 lint 또는 build할 때마다 자동으로 실행됩니다. license 생성기는 각 프로젝트의 lint 타겟이 루트 license-check 타겟에 의존하도록 연결하며, 프로젝트 생성기(ts#* 및 py#*)도 실행될 때 동일하게 수행합니다 — 따라서 생성기가 실행되는 순서에 관계없이 확인이 연결됩니다.
즉, 확인을 명시적으로 실행할 필요는 없지만 license-check 타겟으로 여전히 실행할 수 있습니다:
pnpm nx license-checkyarn nx license-checknpx nx license-checkbunx nx license-check연결은 루트 license-check 타겟을 가리키는 각 프로젝트의 lint 타겟에 대한 교차 프로젝트 dependsOn입니다. lint 또는 build 중에 확인을 건너뛰려면 LICENSE_DEPENDENCY_CHECK=skip 환경 변수를 설정하세요:
pnpm LICENSE_DEPENDENCY_CHECK=skip lintyarn LICENSE_DEPENDENCY_CHECK=skip lintnpm run LICENSE_DEPENDENCY_CHECK=skip lintbun LICENSE_DEPENDENCY_CHECK=skip lint기본적으로 확인은 DEFAULT_LICENSE_ALLOWLIST로 내보낸 일반적인 허용 라이선스(MIT, Apache-2.0, BSD, ISC 등)의 내장 세트를 사용합니다. 구성에서 이를 확장하거나 재정의할 수 있습니다:
import { AwsNxPluginConfig } from '@aws/nx-plugin';import { DEFAULT_LICENSE_ALLOWLIST } from '@aws/nx-plugin/sdk/license';
export default { license: { // ... dependencies: { allow: [...DEFAULT_LICENSE_ALLOWLIST, { spdxId: 'LGPL-2.1-or-later', fullName: 'GNU Lesser General Public License v2.1 or later', aliases: [] }], exceptions: [ { package: 'some-package', reason: 'Audited manually — ships MIT text without SPDX field' }, ], }, },} satisfies AwsNxPluginConfig;기본 라이선스 허용 목록
| SPDX ID | Full Name |
|---|---|
0BSD | BSD Zero Clause License |
AFL-2.1 | Academic Free License v2.1 |
AFL-3.0 | Academic Free License v3.0 |
AMD-newlib | AMD newlib License |
AML | Apple MIT License |
AML-glslang | AML glslang variant License |
ANTLR-PD | ANTLR Software Rights Notice |
ANTLR-PD-fallback | ANTLR Software Rights Notice with license fallback |
APAFML | Adobe Postscript AFM License |
AdaCore-doc | AdaCore Doc License |
Adobe-Display-PostScript | Adobe Display PostScript License |
Adobe-Glyph | Adobe Glyph List License |
Adobe-Utopia | Adobe Utopia Font License |
Apache-1.1 | Apache License 1.1 |
Apache-2.0 | Apache License 2.0 |
Apache-2.0 WITH LLVM-exception | Apache License 2.0 with LLVM Exception |
Artistic-1.0 | Artistic License 1.0 |
Artistic-1.0-Perl | Artistic License 1.0(Perl) |
Artistic-2.0 | Artistic License 2.0 |
Artistic-dist | Artistic License 1.0 (dist) |
BSD-1-Clause | BSD 1-Clause License |
BSD-2-Clause | BSD 2-clause "Simplified" License |
BSD-2-Clause-Darwin | BSD 2-Clause - Ian Darwin variant |
BSD-2-Clause-FreeBSD | BSD 2-clause FreeBSD License |
BSD-2-Clause-NetBSD | BSD 2-clause NetBSD License |
BSD-2-Clause-Views | BSD 2-Clause with views sentence |
BSD-2-Clause-first-lines | BSD 2-Clause - first lines requirement |
BSD-2-Clause-pkgconf-disclaimer | BSD 2-Clause pkgconf disclaimer variant |
BSD-3-Clause | BSD 3-clause "New" or "Revised" License |
BSD-3-Clause-Attribution | BSD with attribution |
BSD-3-Clause-HP | Hewlett-Packard BSD variant license |
BSD-3-Clause-LBNL | Lawrence Berkeley National Labs BSD variant license |
BSD-3-Clause-Modification | BSD 3-Clause Modification |
BSD-3-Clause-Open-MPI | BSD 3-Clause Open MPI variant |
BSD-3-Clause-Sun | BSD 3-Clause Sun Microsystems |
BSD-3-Clause-acpica | BSD 3-Clause acpica variant |
BSD-3-Clause-flex | BSD 3-Clause Flex variant |
BSD-4.3RENO | BSD 4.3 RENO License |
BSD-Source-Code | BSD Source Code Attribution |
BSD-Source-beginning-file | BSD Source Code Attribution - beginning of file variant |
BSL-1.0 | Boost Software License 1.0 |
Baekmuk | Baekmuk License |
Beerware | Beerware License |
Bitstream-Charter | Bitstream Charter Font License |
Bitstream-Vera | Bitstream Vera Font License |
BlueOak-1.0.0 | Blue Oak Model License 1.0.0 |
Boehm-GC | Boehm-Demers-Weiser GC License |
Boehm-GC-without-fee | Boehm-Demers-Weiser GC License (without fee) |
Brian-Gladman-2-Clause | Brian Gladman 2-Clause License |
Brian-Gladman-3-Clause | Brian Gladman 3-Clause License |
CC-BY-2.0 | Creative Commons Attribution 2.0 |
CC-BY-2.5 | Creative Commons Attribution 2.5 |
CC-BY-2.5-AU | Creative Commons Attribution 2.5 Australia |
CC-BY-3.0 | Creative Commons Attribution 3.0 |
CC-BY-3.0-AU | Creative Commons Attribution 3.0 Australia |
CC-BY-3.0-IGO | Creative Commons Attribution 3.0 IGO |
CC-BY-3.0-US | Creative Commons Attribution 3.0 United States |
CC-BY-4.0 | Creative Commons Attribution 4.0 |
CC-PDDC | Creative Commons Public Domain Dedication and Certification |
CC0-1.0 | Creative Commons Zero v1.0 Universal |
CDDL-1.0 | Common Development and Distribution License 1.0 |
CDDL-1.1 | Common Development and Distribution License 1.1 |
CFITSIO | CFITSIO License |
CMU-Mach-nodoc | CMU Mach - no notices-in-documentation variant |
CNRI-Jython | CNRI Jython License |
CNRI-Python | CNRI Python License |
CPOL-1.02 | Code Project Open License 1.02 |
Clips | Clips License |
Cornell-Lossless-JPEG | Cornell Lossless JPEG License |
Cronyx | Cronyx License |
CryptoSwift | CryptoSwift License |
DEC-3-Clause | DEC 3-Clause License |
DocBook-DTD | DocBook DTD License |
DocBook-Schema | DocBook Schema License |
DocBook-Stylesheet | DocBook Stylesheet License |
DocBook-XML | DocBook XML License |
EFL-2.0 | Eiffel Forum License v2.0 |
EPL-1.0 | Eclipse Public License 1.0 |
EPL-2.0 | Eclipse Public License 2.0 |
Entessa | Entessa Public License v1.0 |
FBM | Fuzzy Bitmap License |
FSFAP | FSF All Permissive License |
FSFAP-no-warranty-disclaimer | FSF All Permissive License (without Warranty) |
FSFULLR | FSF Unlimited License (with License Retention) |
FSFULLRSD | FSF Unlimited License (with License Retention and Short Disclaimer) |
FSFULLRWD | FSF Unlimited License (With License Retention and Warranty Disclaimer) |
FTL | Freetype Project License |
Fair | Fair License |
Ferguson-Twofish | Ferguson Twofish License |
FreeBSD-DOC | FreeBSD Documentation License |
Furuseth | Furuseth License |
GD | GD License |
Graphics-Gems | Graphics Gems License |
Gutmann | Gutmann License |
HDF5 | HDF5 License |
HIDAPI | HIDAPI License |
HP-1986 | Hewlett-Packard 1986 License |
HP-1989 | Hewlett-Packard 1989 License |
HPND | Historical Permission Notice and Disclaimer |
HPND-DEC | Historical Permission Notice and Disclaimer - DEC variant |
HPND-Fenneberg-Livingston | Historical Permission Notice and Disclaimer - Fenneberg-Livingston variant |
HPND-INRIA-IMAG | Historical Permission Notice and Disclaimer - INRIA-IMAG variant |
HPND-Intel | Historical Permission Notice and Disclaimer - Intel variant |
HPND-Kevlin-Henney | Historical Permission Notice and Disclaimer - Kevlin Henney variant |
HPND-MIT-disclaimer | Historical Permission Notice and Disclaimer with MIT disclaimer |
HPND-Markus-Kuhn | Historical Permission Notice and Disclaimer - Markus Kuhn variant |
HPND-Netrek | Historical Permission Notice and Disclaimer - Netrek variant |
HPND-Pbmplus | Historical Permission Notice and Disclaimer - Pbmplus variant |
HPND-UC | Historical Permission Notice and Disclaimer - University of California variant |
HPND-doc | Historical Permission Notice and Disclaimer - documentation variant |
HPND-doc-sell | Historical Permission Notice and Disclaimer - documentation sell variant |
HPND-merchantability-variant | Historical Permission Notice and Disclaimer - merchantability variant |
HPND-sell-MIT-disclaimer-xserver | Historical Permission Notice and Disclaimer - sell xserver variant with MIT disclaimer |
HPND-sell-regexpr | Historical Permission Notice and Disclaimer - sell regexpr variant |
HPND-sell-variant | Historical Permission Notice and Disclaimer - sell variant |
HPND-sell-variant-MIT-disclaimer | HPND sell variant with MIT disclaimer |
HPND-sell-variant-MIT-disclaimer-rev | HPND sell variant with MIT disclaimer - reverse |
HTMLTIDY | HTML Tidy License |
ICU | ICU License |
IJG | Independent JPEG Group License |
IJG-short | Independent JPEG Group License - short |
ISC | ISC License |
ISC-Veillard | ISC Veillard variant |
ImageMagick | ImageMagick License |
Inner-Net-2.0 | Inner Net License v2.0 |
JPNIC | Japan Network Information Center License |
JSON | JSON License |
Jam | Jam License |
Kastrup | Kastrup License |
Knuth-CTAN | Knuth CTAN License |
LOOP | Common Lisp LOOP License |
LZMA-SDK-9.11-to-9.20 | LZMA SDK License (versions 9.11 to 9.20) |
LZMA-SDK-9.22 | LZMA SDK License (versions 9.22 and beyond) |
Leptonica | Leptonica License |
Libpng | libpng License |
LicenseRef-NoVersion-Apache | Apache Software License |
LicenseRef-NoVersion-BSD | BSD License |
LicenseRef-Proprietary-NVIDIA-CUDA-Python-2021 | NVIDIA Software License for CUDA Python (2021) |
LicenseRef-Proprietary-NVIDIA-Math-Libraries-SDK-2022 | License Agreement for NVIDIA Math Libraries SDKs (2022) |
LicenseRef-Proprietary-NVIDIA-Nsight-Systems-2024 | Software License Agreement for NVIDIA Nsight Systems (2024) |
LicenseRef-Proprietary-NVIDIA-SDK-nvTIFF-2022 | License Agreement for NVIDIA SDKs with nvTIFF Supplement (2022) |
LicenseRef-Proprietary-NVIDIA-TensorRT-2021 | Software License Agreement for NVIDIA TensorRT (2021) |
LicenseRef-Proprietary-NVIDIA-Warp | Software License Agreement for NVIDIA Warp |
LicenseRef-com.oracle-BCL | Oracle Binary Code License |
LicenseRef-scancode-amazon-sl | Amazon Software License |
LicenseRef-scancode-apple-excl | Apple Java Extensions |
LicenseRef-scancode-indiana-extreme | Indiana University Extreme! Lab Software 1.1.1 |
LicenseRef-scancode-wordnet | WordNet 3.0 license |
Linux-OpenIB | Linux Kernel Variant of OpenIB.org license |
Linux-man-pages-1-para | Linux man-pages - 1 paragraph |
MIPS | MIPS License |
MIT | MIT License |
MIT-0 | MIT No Attribution License |
MIT-CMU | CMU License |
MIT-Click | MIT Click License |
MIT-Festival | MIT Festival Variant |
MIT-Khronos-old | MIT Khronos - old variant |
MIT-Modern-Variant | MIT License Modern Variant |
MIT-Wu | MIT Tom Wu Variant |
MIT-open-group | MIT Open Group variant |
MIT-testregex | MIT testregex Variant |
MITNFA | MIT +no-false-attribs license |
MMIXware | MMIXware License |
MPL-1.1 | Mozilla Public License 1.1 |
MPL-2.0 | Mozilla Public License 2.0 |
MPL-2.0-no-copyleft-exception | Mozilla Public License 2.0 (no copyleft exception) |
MS-PL | Microsoft Public License |
Mackerras-3-Clause | Mackerras 3-Clause License |
Mackerras-3-Clause-acknowledgment | Mackerras 3-Clause - acknowledgment variant |
Martin-Birgmeier | Martin Birgmeier License |
Minpack | Minpack License |
MirOS | MirOS Licence |
MulanPSL-2.0 | Mulan Permissive Software License, Version 2 |
NCBI-PD | NCBI Public Domain Notice |
NCL | NCL Source Code License |
NCSA | University of Illinois/NCSA Open Source License |
NICTA-1.0 | NICTA Public Software License, Version 1.0 |
NIST-PD | NIST Public Domain Notice |
NIST-Software | NIST Software License |
NLPL | No Limit Public License |
NTIA-PD | NTIA Public Domain Notice |
NTP | NTP License |
NTP-0 | NTP No Attribution |
Net-SNMP | Net-SNMP License |
OAR | OAR License |
OFFIS | OFFIS License |
OFL-1.0 | SIL Open Font License 1.0 |
OFL-1.0-RFN | SIL Open Font License 1.0 with Reserved Font Name |
OFL-1.0-no-RFN | SIL Open Font License 1.0 with no Reserved Font Name |
OFL-1.1 | SIL Open Font License 1.1 |
OFL-1.1-RFN | SIL Open Font License 1.1 with Reserved Font Name |
OFL-1.1-no-RFN | SIL Open Font License 1.1 with no Reserved Font Name |
OGC-1.0 | OGC Software License, Version 1.0 |
OLDAP-2.0 | Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B) |
OLDAP-2.0.1 | Open LDAP Public License v2.0.1 |
OLDAP-2.1 | Open LDAP Public License v2.1 |
OLDAP-2.2 | Open LDAP Public License v2.2 |
OLDAP-2.2.1 | Open LDAP Public License v2.2.1 |
OLDAP-2.2.2 | Open LDAP Public License 2.2.2 |
OLDAP-2.3 | Open LDAP Public License v2.3 |
OLDAP-2.4 | Open LDAP Public License v2.4 |
OLDAP-2.5 | Open LDAP Public License v2.5 |
OLDAP-2.6 | Open LDAP Public License v2.6 |
OLDAP-2.7 | Open LDAP Public License v2.7 |
OLDAP-2.8 | Open LDAP Public License v2.8 |
OpenSSL | OpenSSL License |
OpenSSL-standalone | OpenSSL License - standalone |
PADL | PADL License |
PDDL-1.0 | ODC Public Domain Dedication & License 1.0 |
PHP-3.0 | PHP License v3.0 |
PHP-3.01 | PHP LIcense v3.01 |
PSF-2.0 | Python Software Foundation License 2.0 |
Pixar | Pixar License |
PostgreSQL | PostgreSQL License |
Python-2.0 | Python License 2.0 |
Python-2.0.1 | Python License 2.0.1 |
Ruby | Ruby License |
Ruby-pty | Ruby pty extension license |
SAX-PD-2.0 | Sax Public Domain Notice 2.0 |
SGI-B-2.0 | SGI Free Software License B v2.0 |
SL | SL License |
SMLNJ | Standard ML of New Jersey License |
SMPPL | Secure Messaging Protocol Public License |
SSH-OpenSSH | SSH OpenSSH license |
SSH-short | SSH short notice |
SSLeay-standalone | SSLeay License - standalone |
Soundex | Soundex License |
Spencer-86 | Spencer License 86 |
Spencer-94 | Spencer License 94 |
Spencer-99 | Spencer License 99 |
StandardML-NJ | Standard ML of New Jersey License |
Sun-PPP | Sun PPP License |
Sun-PPP-2000 | Sun PPP License (2000) |
SunPro | SunPro License |
Symlinks | Symlinks License |
TCL | Tcl/Tk |
TCP-wrappers | TCP Wrappers License |
TPDL | Time::ParseDate License |
TPL-1.0 | THOR Public License 1.0 |
TTWL | Text-Tabs+Wrap License |
TTYP0 | TTYP0 License |
TU-Berlin-1.0 | Technische Universitaet Berlin License 1.0 |
TU-Berlin-2.0 | Technische Universitaet Berlin License 2.0 |
TermReadKey | TermReadKey License |
ThirdEye | ThirdEye License |
TrustedQSL | TrustedQSL License |
UCAR | UCAR License |
UMich-Merit | Michigan/Merit Networks License |
UPL-1.0 | Universal Permissive License v1.0 |
Ubuntu-font-1.0 | Ubuntu Font Licence v1.0 |
Unicode-3.0 | Unicode License v3 |
Unicode-DFS-2015 | Unicode License Agreement - Data Files and Software (2015) |
Unicode-DFS-2016 | Unicode License Agreement - Data Files and Software (2016) |
UnixCrypt | UnixCrypt License |
Unlicense | Unlicense |
Unlicense-libtelnet | Unlicense - libtelnet variant |
Unlicense-libwhirlpool | Unlicense - libwhirlpool variant |
Vim | Vim License |
W3C | W3C Software and Notice License |
W3C-19980720 | W3C Software Notice and License (1998-07-20) |
W3C-20150513 | W3C Software Notice and Document License (2015-05-13) |
WTFPL | Do What The F*ck You Want To Public License |
Widget-Workshop | Widget Workshop License |
X11 | X11 License |
X11-distribute-modifications-variant | X11 License Distribution Modification Variant |
X11-swapped | X11 swapped final paragraphs |
XFree86-1.1 | XFree86 License 1.1 |
Xdebug-1.03 | Xdebug License v 1.03 |
Xfig | Xfig License |
Xnet | X.Net License |
ZPL-2.1 | Zope Public License 2.1 |
Zed | Zed License |
Zeeff | Zeeff License |
Zlib | zlib License |
any-OSI-perl-modules | Any OSI License - Perl Modules |
bcrypt-Solar-Designer | bcrypt Solar Designer License |
blessing | SQLite Blessing |
bzip2-1.0.6 | bzip2 and libbzip2 License v1.0.6 |
check-cvs | check-cvs License |
checkmk | Checkmk License |
curl | curl License |
cve-tou | Common Vulnerability Enumeration ToU License |
dtoa | David M. Gay dtoa License |
fwlw | fwlw License |
generic-xts | Generic XTS License |
gtkbook | gtkbook License |
hdparm | hdparm License |
jove | Jove License |
libpng-1.6.35 | PNG Reference Library License v1 (for libpng 0.5 through 1.6.35) |
libpng-2.0 | PNG Reference Library version 2 |
libselinux-1.0 | libselinux public domain notice |
libtiff | libtiff License |
libutil-David-Nugent | libutil David Nugent License |
lsof | lsof License |
magaz | magaz License |
mailprio | mailprio License |
man2html | man2html License |
metamail | metamail License |
mpi-permissive | mpi Permissive License |
mplus | mplus Font License |
pkgconf | pkgconf License |
snprintf | snprintf License |
softSurfer | softSurfer License |
ssh-keyscan | ssh-keyscan License |
swrule | swrule License |
threeparttable | threeparttable License |
ulem | ulem License |
w3m | w3m License |
xkeyboard-config-Zinoviev | xkeyboard-config Zinoviev License |
xlock | xlock License |
xpp | XPP License |
zlib-acknowledgement | zlib/libpng License with Acknowledgement |
허용 목록 사용자 정의
섹션 제목: “허용 목록 사용자 정의”허용 목록을 제한하려면 DEFAULT_LICENSE_ALLOWLIST를 자체 배열로 교체하세요. 확장하려면 기본값을 전개하고 항목을 추가하세요. 항목은 SPDX ID, 전체 라이선스 이름 또는 나열된 별칭(대소문자 구분 없음)으로 일치됩니다.
패키지별 예외
섹션 제목: “패키지별 예외”확인에 실패하는 패키지에 대해 exceptions를 사용하세요 — 라이선스가 허용 목록에 없거나 감지 가능한 라이선스 메타데이터 없이 제공되기 때문입니다. reason 필드는 검토자가 예외가 부여된 이유를 확인할 수 있도록 필수입니다.
exceptions: [ { package: 'union', version: '0.5.0', reason: 'Package ships verbatim MIT text without declaring license', },];문제가 있는 메타데이터를 가진 의존성을 도입하는 생성기(예: MCP 서버 생성기)는 실행될 때 필요한 예외를 구성에 자동으로 추가합니다.
수집기
섹션 제목: “수집기”수집기는 의존성을 검색하고 라이선스 메타데이터를 추출합니다. 내장 수집기는 npmCollector()(node_modules 스캔) 및 pythonCollector()(Python 가상 환경 스캔)입니다. 라이선스 생성기는 기본적으로 npmCollector()를 구성하고 Python 프로젝트가 있을 때 pythonCollector()를 추가합니다.
사용자 정의 수집기를 구현하려면 LicenseCollector 인터페이스를 준수하세요:
import type { LicenseCollector } from '@aws/nx-plugin/sdk/license';
const myCollector = (): LicenseCollector => ({ name: 'my-ecosystem', traceCommand: 'my-tool why <package>', async collect({ workspaceRoot }) { return [ { name: 'some-dep', version: '1.0.0', rawLicense: 'MIT', ecosystem: 'my-ecosystem' }, ]; },});onDependency 훅
섹션 제목: “onDependency 훅”license.dependencies는 확인을 통과하거나 실패하는지 여부에 관계없이 검색된 모든 의존성에 대해 한 번씩 호출되는 선택적 onDependency 콜백을 허용합니다. { package, spdx }를 받으며, 여기서 package는 패키지 이름이고 spdx는 해결된 SPDX 라이선스 표현식입니다. 예외의 spdx는 원시 선언된 라이선스보다 우선하며, 라이선스가 선언되지 않은 경우 spdx는 빈 문자열일 수 있습니다.
이는 프로젝트 전체의 모든 라이선스를 출력하는 편리한 방법입니다. license-check 타겟을 실행하여 출력을 확인하세요:
import { AwsNxPluginConfig } from '@aws/nx-plugin';import { DEFAULT_LICENSE_ALLOWLIST } from '@aws/nx-plugin/sdk/license';
export default { license: { dependencies: { allow: DEFAULT_LICENSE_ALLOWLIST, onDependency: ({ package: pkg, spdx }) => { console.log(`${pkg} - ${spdx}`); }, }, },} satisfies AwsNxPluginConfig;의존성 확인 비활성화
섹션 제목: “의존성 확인 비활성화”의존성 라이선스 확인은 구성에 license.dependencies 키가 있으면 활성화됩니다.
단일 실행에 대해 확인을 비활성화하려면 LICENSE_DEPENDENCY_CHECK=skip 환경 변수를 설정하세요:
pnpm LICENSE_DEPENDENCY_CHECK=skip lintyarn LICENSE_DEPENDENCY_CHECK=skip lintnpm run LICENSE_DEPENDENCY_CHECK=skip lintbun LICENSE_DEPENDENCY_CHECK=skip lint영구적으로 비활성화하려면 aws-nx-plugin.config.mts의 구성에서 license.dependencies 키를 제거하세요. --dependencyCheck=false로 license 생성기를 다시 실행하여 이 기능 없이 스캐폴드할 수도 있습니다.