Available Project Types

Currently NPanday has two plugins that register types for dotnet. The maven-compile-plugin>> and the <<<custom-lifecycle-maven-plugin.

While the compile-plugin introduces the NPanday default lifecycle, the other one just does a default maven install and deploy, while leaving it to you to fill up the maven lifecycle with meaningful executions.

Both plugins can resolve dependencies with the types of the other.

Maven Compile Plugin

The following packaging types are supported by the Maven plugins. To make them available, add the Compile plugin with the following definition:

<plugin>
  <groupId>npanday.plugin</groupId>
  <artifactId>maven-compile-plugin</artifactId>
  <version>1.2</version>
  <extensions>true</extensions>
</plugin>

The maven-compile-plugin provides the following packaging types:

  • dotnet-library - builds and packages the assembly (Deprecated: library)
  • dotnet-executable - build and package a console application (Deprecated: exe, winexe)
  • dotnet-module - builds and packages the assembly then uses the Link plugin in the package phase (Deprecated: module)
  • dotnet-maven-plugin - build an assembly from the .NET code and generate a Java binding for Maven (Deprecated: netplugin)
  • asp - uses the ASPX plugin to build an ASP.NET project
  • dotnet-executable-config - simply installs the configuration into the local repository, as no build is required (Deprecated: exe.config)
  • visual-studio-addin - build and packages the assembly in the same way as for a dotnet-library
  • nar - builds and packages with the Webapp plugin

The following dependency types (in addition to the above) are also declared:

  • dotnet-module - references to a dotnet-module
  • dotnet-executable-config and dotnet-library-config - references to .NET configuration files
  • dotnet-symbols - PDB debug information for libraries or executables
  • ole-type-library - TLB-files containing type descriptors for .NET COM Interop
  • dotnet-vsdocs - XML-file containing intellisense information for libraries or executables
  • dotnet-gac, gac_32 - dependencies in the respective GAC types variants (Deprecated: gac, gac_generic, gac_msil)

Custom Lifecycle Maven Plugin

The following definition allows you to install, deploy and resolves files of the listed types.

<plugin>
  <groupId>npanday.plugin</groupId>
  <artifactId>custom-lifecycle-maven-plugin</artifactId>
  <version>1.2</version>
  <extensions>true</extensions>
</plugin>
  • dotnet-module - a .NET module with extension netmodule
    • dotnet-library - A dll-file compiled by any of the .NET compilers
    • dotnet-library-config - Configuration file attachable to a library artifact
  • dotnet-executable - A exe-file compiled by any of the .NET compilers
  • dotnet-executable-config - Configuration file attachable to a executable artifact
  • dotnet-symbols - A pdb-file containing debug symbols for either a dll or executable
  • ole-type-library - A tlb-file that contains information about types of a library that are accessible through COM
  • dotnet-vsdocs - A xml-file containing the inline code documentation for a library or executable
  • dotnet-archive - A zip of libraries and their complementary files as debug symbols, docs or local satellite assemblies.

For dotnet-archive it is recommended to create the zip using the Maven Assembly Plugin.

When you resolve a dotnet-archive you might want to use depencendy:unpack-dependencies to unpack it before you compile against your dependencies.