sitelink1 https://github.com/spdx/tools-java 
sitelink2 https://github.com/spdx/tools-python 
sitelink3 https://github.com/spdx/spdx-online-tools 
sitelink4  
extra_vars5  
extra_vars6  

tools-java 는 문서 포맷 검증에 체크섬 생성 및 포맷 변환 기능이 있지만 현재 2.0.1 버전에는 'SBOM NTIA' 체크 기능이 없다.

'SBOM NTIA' 체크 기능은 tools-python 에 있다고 gpt 가 알려주었지만 할루시네이션같다. (github project README.md 를 살펴봐도 관련 내용 없음)

대시 'spdx-online-tools' project 를 찾았고 이것을 이용해 rest api 형식으로 서비스를 호출 할 수 있을 것 같아서 현재 검토중이다. (2025.07.30)

 



SPDX Java Tools 주요 기능 요약

1. SPDX 문서 읽기/쓰기 지원

  • 다양한 SPDX 포맷 지원:

    • Tag/Value

    • RDF/XML

    • JSON

    • YAML

  • SPDX 파일을 Java 객체로 파싱하고, 반대로 객체를 문서로 저장 가능

2. SPDX 문서 유효성 검증

  • SPDX 문서가 사양에 맞는지 자동 검증 (SPDXDocumentVerifier 클래스 등)

  • 잘못된 포맷, 누락된 필드, 잘못된 해시값 등의 오류 검출

3. SPDX 문서 변환

  • SPDX 문서 포맷 간 변환 (예: Tag/Value → RDF/XML, JSON ↔ YAML 등)

  • 변환 시 자동 정렬 및 정합성 유지

4. SPDX 패키지 및 파일 메타데이터 처리

  • SPDX 패키지 생성, 파일 추가, 라이선스 지정, 해시값 계산 등

  • 파일별 라이선스 추정 결과 적용 가능

5. SPDX Checksum 및 검증 코드 생성

  • SHA1, SHA256, MD5 등 해시 알고리즘 지원

  • PackageVerificationCode 자동 생성 (파일 해시 기반)

6. SPDX 라이선스 관련 기능

  • 표준 SPDX 라이선스 식별자 처리 (LicenseInfoFactory)

  • 사용자 정의/비표준 라이선스도 지원


 활용 예시

SPDX 문서 파싱

java
SpdxDocument document = SPDXDocumentFactory.createSpdxDocument("path/to/doc.spdx");

 

파일 해시 생성 및 SPDX 파일 객체 생성

java
SpdxFile file = new SpdxFile("src/Foo.java", checksums, concludedLicense, ...);

 

패키지 검증 코드 생성

java
String verificationCode = PackageVerificationCodeGenerator.generate(pkgFiles);

 

문서 저장

java
document.save("path/to/output.spdx", format); // RDF, tag-value 등 지정

대상 사용자

  • SPDX 기반 SBOM 관리 도구를 개발하는 Java 개발자

  • 빌드 도구(예: Maven, Gradle)에 SPDX 생성을 통합하려는 팀

  • 라이선스/컴플라이언스 자동화 파이프라인 구축자


기타 정보

  • SPDX v2.2.x 사양 기준으로 개발 중

  • GPL-2.0-only 라이선스

  • Maven 라이브러리로 직접 빌드 가능 (pom.xml 포함)

번호 제목 sitelink1 글쓴이 날짜 조회 수
공지 [계속 추가중] SBOM 용어 정의   황제낙엽 2025.04.10 197
공지 [계속 추가중] Keycloak 용어 및 설정 옵션 정의   황제낙엽 2024.02.02 732
» SPDX(Java Tools) - SPDX 문서의 생성, 파싱, 검증, 조작, 직렬화 https://github.com/spdx/tools-java  황제낙엽 2025.07.30 0
109 FOSSLight 의 Scanner 중 SBOM 산출 가능 Scanner https://github.com/fosslight/fosslight_dependency_scanner  황제낙엽 2025.07.23 0
108 [Gemini] OSS Review Toolkit 의 도움말 번역 https://github.com/oss-review-toolkit/ort  황제낙엽 2025.06.25 0
107 SPDX 를 지원하는 Open Source 목록 https://spdx.dev/tools/open-source-tools/  황제낙엽 2025.06.24 0
106 (Microsoft) sbom-tool generate 명령어 옵션 설명 https://github.com/microsoft/sbom-tool  황제낙엽 2025.06.24 0
105 [Google] OSV-Scanner 의 scan source 의 help 한글 번역   황제낙엽 2025.06.23 0
104 [Gemini] Google 의 OSV-Scanner, OSV-Scalibr, OSV-Scanner V2 https://google.github.io/osv-scanner  황제낙엽 2025.06.23 0
103 소스 파일 내용에서 라이선스 정보를 추출하는 기능이 있는 오픈소스 도구   황제낙엽 2025.06.23 0
102 Syft 설치 및 실행 (at Windows 11) https://github.com/anchore/syft  황제낙엽 2025.06.23 0
101 [FOSSLight Hub] FOSSLight Hub / 3rd Party / BOM(Bill of Materials) https://fosslight.org/hub-guide/  황제낙엽 2025.06.18 0
100 [FOSSLight Hub] 3rd Party file https://fosslight.org/hub-guide/menu/5_t...C%EC%A0%95  황제낙엽 2025.06.18 0
99 [Gemini] Trivy 와 Dependency-Check 의 기능 비교   황제낙엽 2025.06.16 0
98 FOSSLight 각 Scanner 들의 특징 https://fosslight.org/fosslight-guide/  황제낙엽 2025.06.13 0
97 FOSSLight Source Scanner 와 FOSSLight Scanner 의 License 정보 감지 관련 https://fosslight.org/fosslight-guide/scanner/2_source.html  황제낙엽 2025.06.12 0
96 [Gemini] Defendency-check, Syft, Trivy https://github.com/anchore/syft  황제낙엽 2025.06.12 0
95 [FOSSLight Hub] 시스템 구축 방법 https://fosslight.org/hub-guide/advanced/1_developer.html  황제낙엽 2025.06.12 0
94 [ChatGPT] SBOM 도구 사용시 Xcode나 macOS 환경이 꼭 필요한 경우   황제낙엽 2025.06.12 0
93 [FOSSLight Hub] 가 제공하는 기능 https://github.com/fosslight/fosslight/b...DME_kor.md  황제낙엽 2025.06.11 0
92 [Gemini] FOSSLight 의 데이터 공유 정책 관련 https://fosslight.org/hub-guide/  황제낙엽 2025.06.11 0
91 ScanCode toolkit 분석 도구 기능 명세 https://github.com/aboutcode-org/scancode-toolkit/releases  황제낙엽 2025.06.10 0