Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

The following directory structures should be supported by NMaven

1. Typical Maven single-module structure, single pom with separate source trees for code and tests.

2. Typical Maven multi-module structure, parent pom with modules, subdirectories for modules, each module containing source and tests as in 1.

3. Visual Studio flat structure with .sln, .csproj and source code all in the same directory. Source code is not typically put in a subdirectory under the module, but it might be. If present, NUnit test code should be in a directory named "Tests", which is not packaged in the main artifact. See note below about "nested" projects. The "flat" structure is only supported as a single project with no sub-modules, for projects of type 'library' (dll) and exe.

4. Visual Studio multi-module solution with a parent pom containing modules, then a subdirectory for each module, which equates to a VS "project". The .sln file sits beside the parent pom, and each subdirectory contains a .csproj, pom.xml and source code. Source code is not typically put in a subdirectory under the module, but it might be. NUnit test code may be within each module in a directory named "Tests", or it may be in a separate module.

Note: Some versions of NMaven have limited support for a "nested" project-within-project structure with source code in the parent directory. This structure will have a .sln and .vbproj file at the top, then directories for additional modules beneath, each containing a .vbproj file. This structure is NOT RECOMMENDED and not likely to be fully supported by Maven tools such as the Release plugin.

TODO: ASP .NET project structure (may involve links outside the project to web content?)

  • Flat structure is not supported

TODO: ADO .NET project structure

NOTE: In the examples, .vbproj and .csproj are interchangeable, each structure should work for any language, and a solution may be composed of different modules using different languages.

  • No labels