blob: f77a37d191c2465df79fa80dd8413a9b40f467b3 [file] [log] [blame]
----
Building NPanday
----
----
~~Licensed to the Apache Software Foundation (ASF) under one
~~or more contributor license agreements. See the NOTICE file
~~distributed with this work for additional information
~~regarding copyright ownership. The ASF licenses this file
~~to you under the Apache License, Version 2.0 (the
~~"License"); you may not use this file except in compliance
~~with the License. You may obtain a copy of the License at
~~
~~ http://www.apache.org/licenses/LICENSE-2.0
~~
~~Unless required by applicable law or agreed to in writing,
~~software distributed under the License is distributed on an
~~"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~~KIND, either express or implied. See the License for the
~~specific language governing permissions and limitations
~~under the License.
Building NPanday
Building NPanday is quite simple and follows the typical convention for a Maven project.
* Pre-requisites
You must fulfil the same prerequisites that are documented in the
{{{../guide/installation/index.html} Installation Guide}}.
If you already have Visual Studio 2005 or later installed, then the
environment will already be sufficient.
If you are building with just the Windows SDK, then the Add-in will be
skipped. To build that as well, either install Visual Studio, or the freely
available {{{http://www.microsoft.com/download/details.aspx?id=1366} Visual
Studio 2010 Shell Integration}} package.
If you are building using Mono, no additional requirements are needed, and
Windows-specific modules such as the Add-in will be skipped.
Depending on the other software you have installed, several integration
tests may be skipped. If you'd like to ensure maximum compatibility of your
changes, you should have the following installed:
* Windows Azure SDK 1.6 (November 2011)
* Windows Azure SDK 1.7 (June 2012)
* WiX Toolset 3.x
* Microsoft Web Deploy 2.1
* .NET Framework 2.0
* .NET Framework 3.5
* .NET Framework 4.0
* ASP.NET MVC 2
* Checking out the Source Code
You can check out the latest source code from
{{https://svn.apache.org/repos/asf/incubator/npanday/trunk}}. You can also
download a previous version as an archive from the web site, or check it
out from the subdirectory of
{{https://svn.apache.org/repos/asf/incubator/npanday/tags}}.
For example:
+----+
svn co https://svn.apache.org/repos/asf/incubator/npanday/trunk npanday
+----+
* Building All with Maven
To build the default modules for the current platform, run Maven:
+----+
mvn clean install
+----+
Once this command has completed, you can proceed to use the Maven plugins
immediately.
This build assumes that a suitable version of NPanday is available to build
itself. If necessary, you may need to first run this:
+----+
bootstrap
+----+
After that, you may simply use <<<mvn clean install>>> each time.
Several profiles are available for more extensive support or tests:
* <<<net40>>> - run additional .NET 4.0 tests for the project importer
* <<<run-its>>> - run the integration tests for plugins and the overall
NPanday suite (requires <<<mvn clean install>>> to have been run once
first)
* <<<dist>>> - build the distribution files including the MSI
Therefore, a complete build might be:
+----+
mvn clean install -Pnet40,run-its,dist
+----+
More information on these options can be found in the following sections.
* Building the Visual Studio Add-in with Visual Studio / MSBuild
If you just wish to work on the Visual Studio Add-in, it can be loaded into Visual Studio and built there. More
information is available in {{{./debugging-addin.html} Debugging the Visual Studio Add-in}}.
* Running Integration Tests
The Maven command line plugins feature a series of integration tests to ensure that everything is working as
expected. They can be obtained by checking out the source code at
{{https://svn.apache.org/repos/asf/incubator/npanday/npanday-its/trunk}}.
For example:
+----+
svn co https://svn.apache.org/repos/asf/incubator/npanday/npanday-its/trunk npanday-its
+----+
From within that directory, you can run it against the latest available version of NPanday (likely the one you have
just built above) using the following command:
+----+
mvn test -Prun-its
+----+
The command will indicate which version of NPanday is being used, and which tests pass and fail. It will also
indicate which version of .NET SDK is installed and used by the tests - for example, if .NET 3.5 SDK is not available,
tests that depend on it will be skipped.
You can also run them against a specific previous version of NPanday (which will be downloaded from the repository
if needed):
+----+
mvn test -Prun-its -Dnpanday.version=${project.version}
+----+
When contributing fixes for issues in the Maven plugins, it is appropriate to write an integration test along with it.
They are written in Java, using JUnit, and contain a sample project against which <<<mvn>>> is run against, and the
the expected results are then verified. Existing integration tests can be used as a guide.
* Building NPanday and executing the ITs
You can also build the source code and execute the ITs in one command. But first you have to install the ITs in your
local repository using the following command from the npanday-its checkout:
+----+
mvn clean install
+----+
After you have installed the ITs locally, you can now build the source code and execute the ITs by
using the following command:
+----+
mvn clean install -Prun-its
+----+
Note that in addition to running the suite of integration tests for
NPanday, this also enables integration tests for certain plugins that use the
Maven invoker framework.
* Generating NPanday's documentation locally
NPanday documentation is generated from {{{http://maven.apache.org/doxia/references/apt-format.html} APT-files}}
using the {{{http://maven.apache.org/doxia/index.html} Maven Doxia Tools}}.
The documentation site and PDF can be generated using the following command within the <<<site>>> and the
<<<plugins>>> directory of the NPanday trunk:
+----+
mvn site
+----+
Open <<<target/site/index.html>>> in your browser to view the
documentation for each module.
It is recommended to add <<<-o>>> for speeding up the generation after the first successful build.