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.