我想对 Maven Eclipse 项目运行 Fortify 扫描。
我应该从哪里开始?
我了解我需要更新我的pom.xml
文件以包含 Fortify 插件,但是我是否还需要在我的计算机上安装 Fortify SCA?(我正在运行 MacOS X)。我一直在寻找下载 Fortify SCA 的地方,但一直找不到。
如果有人可以分享一些链接来为我指明正确的方向以完成设置,我将不胜感激。
我想对 Maven Eclipse 项目运行 Fortify 扫描。
我应该从哪里开始?
我了解我需要更新我的pom.xml
文件以包含 Fortify 插件,但是我是否还需要在我的计算机上安装 Fortify SCA?(我正在运行 MacOS X)。我一直在寻找下载 Fortify SCA 的地方,但一直找不到。
如果有人可以分享一些链接来为我指明正确的方向以完成设置,我将不胜感激。
实际上不需要配置文件,只需要插件配置。
<build>
<plugins>
<plugin>
<groupId>com.fortify.ps.maven.plugin</groupId>
<artifactId>sca-maven-plugin</artifactId>
<version>4.30</version>
<configuration>
<findbugs>true</findbugs>
<htmlReport>true</htmlReport>
<maxHeap>800M</maxHeap>
<source>myJavaVersion</source>
<buildId>myBuildId</buildId>
<verbose>true</verbose>
<skipTests>true</skipTests>
<toplevelArtifactId>myTopLevelId</toplevelArtifactId>
</configuration>
</plugin>
</plugins>
</build>
通过使用单个 Jenkins 作业,您可以编写一个 shell 脚本作为预步骤:
mvn clean sca:clean -DskipTests
mvn sca:translate -DskipTests
然后将实际的“目标和选项”定义为:
install sca:scan -DskipTests
将它们作为单独的命令行是在一项 Jenkins 作业中完成 sca-clean、翻译和扫描(并将报告文件发送到 Fortify)的唯一方法。
希望这对你也有效!
我认为不需要安装 Fortify,但是没有它很难获得 maven sca 插件。如果您安装在另一台机器上,您可以只复制该插件,但您不会让 Audit Workbench 应用程序与生成的 FPR 一起工作。正如@Eric 所说,你必须通过惠普获得它,没有许可证就无法使用。
安装完成后,将配置文件添加到 pom.xml 以执行 sca 目标:
<profile>
<id>sca-clean</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.fortify.ps.maven.plugin</groupId>
<artifactId>sca-maven-plugin</artifactId>
<version>4.30</version>
<configuration>
<jre64>true</jre64>
<buildId>myproject</buildId>
<toplevelArtifactId>myproject.parent</toplevelArtifactId>
<skipTests>true</skipTests>
</configuration>
<executions>
<execution>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>sca-translate</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.fortify.ps.maven.plugin</groupId>
<artifactId>sca-maven-plugin</artifactId>
<version>4.30</version>
<configuration>
<jre64>true</jre64>
<jreStack>8M</jreStack>
<maxHeap>12000M</maxHeap>
<verbose>true</verbose>
<buildId>myproject</buildId>
<toplevelArtifactId>myproject.parent</toplevelArtifactId>
<skipTests>true</skipTests>
<failOnSCAError>true</failOnSCAError>
</configuration>
<executions>
<execution>
<goals>
<goal>translate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>sca-scan</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.fortify.ps.maven.plugin</groupId>
<artifactId>sca-maven-plugin</artifactId>
<version>4.30</version>
<configuration>
<jre64>true</jre64>
<jreStack>8M</jreStack>
<maxHeap>12000M</maxHeap>
<verbose>true</verbose>
<buildId>myproject</buildId>
<toplevelArtifactId>myproject.parent</toplevelArtifactId>
<failOnSCAError>true</failOnSCAError>
<upload>false</upload>
<projectName>My Project Main Development</projectName>
<projectVersion>${project.version}</projectVersion>
</configuration>
</plugin>
</plugins>
</build>
</profile>
从命令行运行扫描:
mvn -Dmaven.test.skip=true -Dfortify.sca.buildId=myproject -Dfortify.sca.toplevel.artifactId=myproject.parent com.fortify.ps.maven.plugin:sca-maven-plugin:clean
显然,您必须弄清楚 buildId 和 artifactId 的命名,并且根据您使用的是 parent、aggregator 还是什么都不用而有所不同。