加强与Maven的集成-安装



我想对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,translate和scan(并将文件发送到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的命名,这取决于您是使用父类、聚合器还是什么都不使用。

Mac OS Fortify安装安装了一个名为ScanWizard的程序,该程序能够生成一个Maven/Java集成的。sh脚本来运行扫描,但问题是它需要您编辑pom并放入Fortify插件。在我的网络上,我的Nexus服务器阻止我下载它,可能是因为工件不在Maven中心上,并且我的Nexus设置只能从中心进行镜像。

最新更新