web-dev-qa-db-ja.com

Mavenとの統合を強化-インストール

MavenEclipseプロジェクトに対してFortifyスキャンを実行したいと思います。

どこから始めればいいですか?

Fortifyプラグインを含めるためにpom.xmlファイルを更新する必要があることを理解していますが、Fortify SCAをマシンにインストールする必要もありますか? (私はMacOS Xを実行しています)。 Fortify SCAをダウンロードする場所を見つけようとしましたが、見つかりませんでした。

誰かがいくつかのリンクを共有して、セットアップを完了するための正しい方向を示すことができれば幸いです。

6
Rory Lester

Fortifyのインストールは必要ないと思いますが、それなしでmavenscaプラグインを入手するのはかなり困難です。別のマシンにインストールする場合は、プラグインだけをコピーできますが、生成されたFPRを操作するためのAuditWorkbenchアプリケーションがありません。 @Ericが言ったように、HPを介して取得する必要があり、ライセンスがないと機能しません。

インストールしたら、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の名前を理解する必要があり、親、アグリゲーター、または何も使用していないかどうかによって少し異なります。

4
Dave C

実際にはプロファイルは必要なく、プラグイン構成のみが必要です。

<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ジョブを使用することで、前段階としてシェルスクリプトを作成できます。

mvn clean sca:clean -DskipTests
mvn sca:translate -DskipTests

次に、実際の「目標とオプション」を次のように定義します。

install sca:scan -DskipTests

それらを別々のコマンドラインとして使用することが、1つのJenkinsジョブでsca-clean、translate、scan(およびレポートファイルのFortifyへの送信)を実行する唯一の方法です。

これがあなたにもうまくいくことを願っています!

6
Prokis