| 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 |
| |
| +------+ |
| <project xmlns="http://maven.apache.org/POM/4.0.0"> |
| <modelVersion>4.0.0</modelVersion> |
| <groupId>NMaven.Artifact</groupId> |
| <artifactId>NMaven.Artifact</artifactId> |
| <packaging>library</packaging> |
| <version>0.14</version> |
| <name>NMaven.Artifact</name> |
| </project> |
| +------+ |
| |
| * 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. |
| |
| +------+ |
| |
| <project xmlns="http://maven.apache.org/POM/4.0.0"> |
| <modelVersion>4.0.0</modelVersion> |
| <groupId>NMaven.Plugins</groupId> |
| <artifactId>NMaven.Plugins</artifactId> |
| <packaging>pom</packaging> |
| <version>0.14</version> |
| <name>NMaven.Plugins</name> |
| <build> |
| <sourceDirectory>src/main/csharp</sourceDirectory> |
| <testSourceDirectory>src/test/csharp</testSourceDirectory> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.dotnet.plugins</groupId> |
| <artifactId>maven-compile-plugin</artifactId> |
| <extensions>true</extensions> |
| <configuration> |
| <vendor>MONO</vendor> |
| <frameworkVersion>2.0.50727</frameworkVersion> |
| <vendorVersion>1.2.3.1</vendorVersion> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </project> |
| +------+ |
| |
| |
| * Use the default setup within the nmaven-settings.xml is to configure cross-platform builds. |
| |