Conventions The following sections describe the conventions used within NMaven itself. This section is useful for developers wishing to contribute to NMaven, as well as developers looking for a baseline for their own projects. These conventions are evolving and subject to change as better ideas emerge: {{{mailto:nmaven-dev@incubator.apache.org} Got better ideas?}} * Artifact ID - specified within the pom - is equivalent to the project's module name. Project Structure: +------+ |-- NMaven.Artifact | `-- main | `-- csharp | `-- NMaven | `-- Artifact | `-- ArtifactContext.cs | `-- Artifact.cs `-- pom.xml +------+ pom.xml file +------+ 4.0.0 NMaven.Artifact NMaven.Artifact library 0.14 NMaven.Artifact +------+ * If the module does not contain children modules, the Group ID is the same as the artifact ID. * If a module contains children modules, the child module Group ID should either be equivalent to the parent module Group ID or be a deriviative of the parent module Group ID. * The directory structure of the source directory (typically src/main/csharp) will follow the same pattern as the group ID. * If an assembly will only compile under a specific platform, those values should be specified within the compiler-config. +------+ 4.0.0 NMaven.Plugins NMaven.Plugins pom 0.14 NMaven.Plugins src/main/csharp src/test/csharp org.apache.maven.dotnet.plugins maven-compile-plugin true MONO 2.0.50727 1.2.3.1 +------+ * Use the default setup within the nmaven-settings.xml is to configure cross-platform builds.