使用构建工具(maven和gradle)在jenkins中使用fortify sca

时间:2014-12-14 06:32:51

标签: java maven jenkins gradle fortify

最近,我们的团队选择强化sca来扫描我们的项目。 我们的项目有两种类型JavaEE(没有EJB)和Android。

我们希望将扫描步骤添加到CI步骤中。 所以我在jenkins构建项目之后添加这样的脚本进行扫描。

sourceanalyzer -b manage_dev -clean
sourceanalyzer -b manage_dev -jdk 1.6 -encoding UTF-8 "src/."
sourceanalyzer -b manage_dev -Xmx4000M -scan -f manage_dev_report.fpr  
ReportGenerator -format pdf -f manage_dev_report.pdf -source manage_dev_report.fpr

但是我不知道如何设置参数-cp(classpath), 由于我们使用构建工具,依赖库不在我们的源代码中。

我知道有一些强化的maven和gradle插件。 但我们并不想改变我们的构建脚本。

感谢您的帮助。

聚苯乙烯。我们正在使用HP_Fortify_SCA_and_Apps_4.20和最新版本的jenkins。

2 个答案:

答案 0 :(得分:1)

以下是在我的pom.xml文件中对我有用的配置:

<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,translate和scan(以及发送到Fortify的报告文件)的唯一方法。

希望这也适合你!

答案 1 :(得分:-1)

首先:

命令行记录在文件HP_Fortify_SCA_User_Guide_4.20.pdf中。但是,以下是一个常见的用例,也是一个非常好的起点:

命令如下:

sourceanalyzer -verbose -logfile {{location where you want the log}} -XX:MaxPermSize={{perm memory size}} –Xmx{{memory to allocate}} -64 -scan -f {{file to save the result to}}  -cp {{root folder or JAR file to start crawling from}} -source {{Java version}} {{folder where source can be found}}

例如,这是我在PC上运行的扫描:

sourceanalyzer -verbose -logfile "d:\TestSites\JavaVulns\mylog.txt" -XX:MaxPermSize=512M -Xmx4G -64 -scan -f MyTest.fpr  -cp "d:\TestSites\JavaVulns\*.jar" -source 1.5 d:\TestSites\JavaVulns

祝你有美好的一天, 丹尼斯