blob: b46a93682166c21406098e4b099180aee971efa0 [file] [log] [blame]
----
Releasing .NET Projects with Maven
----
19 Feb 2010
----
~~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.
Releasing .NET Projects with Maven
Releasing a project with NPanday follows the same technique as for any Maven project, so the Maven documentation can
be consulted on the topic. Here we will provide a brief summary, and give notes on NPanday specific issues. You can
refer to the release documentation in
{{{http://maestrodev.com/node/196} Better Builds with Maven}} for more information.
* Setting up the POM
Before preparing the release, the Maven POM must be set up appropriate for release. The version of the project should
be a SNAPSHOT, but all SNAPSHOT dependency, parent and plugin references outside the project solution should be
set to fixed releases.
The <<<\<scm\>>>> tag should be configured in the project's <<<pom.xml>>>. It should look similar to the following:
+------+
<scm>
<connection>scm:svn:[project_url]</connection>
<developerConnection>scm:svn:[project_url]</developerConnection>
<url>[URL of the project]</url>
</scm>
+------+
* Preparing References
Before starting the release, projects with GAC or COM references should run an additional preparation step:
----
mvn org.apache.npanday.plugins:NPanday.Plugin.SysRef.JavaBinding:prepare
----
The reference (DLL) will be searched from <<<C:\\WINDOWS\\assembly\\GAC_MSIL>>> directory and will be put in
<<<C:\\WINDOWS\\Temp\\NPanday>>> then renamed following the artifact filename format <<<[artifactId]-[version].[packaging]>>>.
After the reference is renamed, it will then be installed in the local repository
<<<C:\\Users\\[username]\\.m2\\repository>>> for it to be used when releasing the project.
The following are examples of references of different types which are renamed then installed in the local repository,
* <<gac_msil>> file: <<<Microsoft.JScript-8.0.0.0-b03f5f7f11d50a3a.gac_msil>>>
* <<com_reference>> file: <<<Acrobat-1.1.0.0-{E64169B3-3592-47D2-816E-602C5C13F328}-1.1-0.com_reference>>>
[]
* Preparing and Performing the Release
Following this, the Maven release process can be used. First, it needs to be prepared:
----
mvn release:prepare
----
Following the prompts will adjust the versions and manipulate SCM to end up with a tagged release, and trunk ready
for more development.
After that (or at a point in the future), the release can be built and published using the perform command:
----
mvn release:perform
----
This will also deploy the built artifacts to an artifact repository. See
{{{../devinfra/artifact-repository.html} Setting up an Artifact Repository}} for information on how to do this and
to configure the POM's <<<distributionManagement>>> section accordingly.