Kwmaven
The kwmaven command creates a Java build specification based on the information in your maven build file.
Prerequisites
Before you can create a build specification, you need to:
- install the Server package. See Installing Klocwork.
- install Maven. See Supported Java build tools to see what versions are supported.
- you must use a javac from the Java Development Kit (JDK)
- you must have the path to the Maven and JVM executables set in the PATH environment variable:
- Unix:
PATH=<path_to_mvn>/bin:<path_to_JDK>/bin:<klocwork_install>/bin:$PATH
- Windows:
PATH=<path_to_mvn>\bin;<path_to_JDK>\bin;<klocwork_install>\bin;%PATH%
For how-to information, see Creating a Java build specification.
Usage
kwmaven <maven_options>
where <maven_options> are any arguments required for your maven build
Options
| Name (and short name) | Description |
|---|---|
| --global-settings (-gs) <file> | specify an alternate path for the global settings file at <file>. By default, global settings are defined in ${M2_HOME}/conf/settings.xml. |
| --help (-h) | display help |
| --manual-integration | enable manual integration |
| --output <file> | write the build specification to <file>. By default, the build specification is written to kwinject.out in the current working directory. |
| --settings (-s) <file> | specify an alternate path for the user settings file at <file>. By default, kwmaven uses the file at ${user.home}/.m2/settings.xml. |
| --update (-u) | when specified, the existing build specification is updated with the results of the new incremental build instead of overwriting it. |
| --version | display kwmaven version |
File exclusion with kwmaven
If you wish to make use of file exclusion or inclusion with kwmaven, it can be run with the --manual-integration option. In every Project Object Model (POM), there must be a plugin section for the maven-compiler-plugin and, in this section, dependency on the kwmaven plugin has to be specified. For example:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<useIncrementalCompilation>false</useIncrementalCompilation>
<excludes>
<exclude>**/Ignore.java</exclude>
</excludes>
</configuration>
</plugin>
becomes this:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<useIncrementalCompilation>false</useIncrementalCompilation>
<excludes>
<exclude>**/Ignore.java</exclude>
</excludes>
</configuration>
<dependencies>
<dependency>
<groupId>com.klocwork</groupId>
<artifactId>kwmaven</artifactId>
<version>10.4.0.1577</version>
</dependency>
</dependencies>
</plugin>
The dependency does not interfere with the native build.
If you are getting memory errors while running kwmaven with file exclusion, there are two possible workarounds to resolve this issue:
- Specify 'clean' target along with your build target. For example, if you are building with 'compile', your command will look as follows:
kwmaven --manual-integration clean compile
- Use kwmaven's --force-install option that disables version checking. For example:
kwmaven --manual-integration compile --force-install