Runs IKVM from within Maven
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This Maven plugin runs IKVM on a collection of Java jar files (defined by the dependencies in the POM that includes this plugin).

The primary itch it scratches is to generate DLLs for use by the iOS backend of the PlayN cross-platform game development library, but it should in theory be usable for incorporating IKVM into any Maven build.

It defines a dll packaging type and generates a dll artifact.


One must configure their IKVM installation location in Maven's global settings (~/.m2/settings.xml). For example:

      <!-- ikvmc.path specifies where to find ikvmc.exe. It defaults to:
           ${ikvm.path}/bin/ikvmc.exe -->
      <!-- <ikvmc.path>/path/to/ikvmc.exe</ikvmc.path> -->
      <!-- dll.path specifies where to find the standard libraries. It defaults to:
           You can customize it to use some other Mono installation, or
           leave it pointing to a non-existent directory to locate standard
           libraries via the built-in library search path. -->
      <!-- <dll.path>/path/to/mono/usr/lib/x.x</dll.path> -->

Once that's done, the following POM fragment demonstrates the use of this plugin:

<?xml version="1.0" encoding="UTF-8"?>
<project ...>



        <!-- this lets Maven know that we define 'packaging: dll' -->
          <!-- these are additional referenced DLLs (beyond mscorlib, System and System.Core) -->

On Windows, the plugin will execute ikvmc.exe directly. On non-Windows platforms, the plugin expects mono to be in your path on the command line. You can force the use of Mono even on Windows by adding <force.mono>true</force.mono> in <configuration>.


ikvm-maven-plugin is released under the New BSD License, which can be found in the LICENSE file.