[Bug] java-Gradle 编译方式 springboot项目, 使用io.spring.dependency-management插件导入springboot依赖时 无法扫描出依赖以及漏洞
Title
OpenSCA-cli无法检测出 java - Gradle编译方式 使用io.spring.dependency-management插件不明确标识版本号时无法扫描出依赖和漏洞
Description
使用OpenSCA-cli打包成docker镜像, 扫描java Gradle项目 镜像无Gradle编译环境, 使用build.gradle文件静态分析
build.gradle
plugins { id 'java' id 'org.springframework.boot' version '3.2.3' id 'io.spring.dependency-management' version '1.1.4' }
group = 'com.example' version = '0.0.1-SNAPSHOT'
java { sourceCompatibility = '17' }
configurations { compileOnly { extendsFrom annotationProcessor } }
repositories { mavenCentral() }
dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-ldap' implementation 'org.springframework.boot:spring-boot-starter-data-redis' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.session:spring-session-data-redis' compileOnly 'org.projectlombok:lombok' runtimeOnly 'org.postgresql:postgresql' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' }
tasks.named('test') { useJUnitPlatform() }
Possible Fix (optional)
希望支持gradle编译的静态文件分析
Gradle 解析比较困难,近期会提供集成有编译工具的 docker 镜像,敬请关注。
Gradle 解析比较困难,近期会提供集成有编译工具的 docker 镜像,敬请关注。
如果不想集成编译工具呢, 因为有些项目是指定的是maven中央仓库, 但是部署环境是不给外网的连接的
不影响,若调用包管理器(动态逻辑)失败,会自动走静态解析的逻辑,示意图如下:

不影响,若调用包管理器(动态逻辑)失败,会自动走静态解析的逻辑,示意图如下:
主要是在没有gradle编译环境的时候, springboot项目在不明确指定版本号的情况下, 静态解析无法解析出组件
已加入需求池