blob: 0068bac71c591faed0de8263f4d13e8e2e4d2552 [file] [log] [blame]
----
Project Types
----
----
2012-01-09
----
~~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.
Available Packaging Types
NPanday defines a couple of .NET-related packaging types that can
both be used in primary or secondary project outputs or dependencies.
Certain plugins bind so called Lifecycle Mappings (goal executions per Maven Lifecycle)
to corresponding packaging types; this means, that if your pom has a specific packaging,
and one of these special plugins is configured with <<<\<extensions\>true\</extensions\>>>>,
Maven will automatically trigger the needed goals to create and attach the wanted
artifact(s).
* Maven Compile Plugin
To make types and lifecycles for the {{{../../plugins/maven-compile-plugin/index.html}Maven Compile Plugin}} available,
add the following declaration to your pom file.
----
<plugin>
<groupId>org.apache.npanday.plugins</groupId>
<artifactId>maven-compile-plugin</artifactId>
<version>${project.version}</version>
<extensions>true</extensions>
</plugin>
----
The <<<maven-compile-plugin>>> provides the following main packaging types:
* <<<dotnet-library>>> - builds and packages a DLL assembly file. (Deprecated naming: <<<library>>>)
* <<<dotnet-executable>>> - builds and packages an EXE assembly file (Deprecated naming: <<<exe>>>)
* <<<dotnet-windows-executable>>> - builds and packages an EXE assembly file using the <<<winexe>>> target type (Deprecated naming: <<<winexe>>>)
* <<<dotnet-module>>> - builds a module file, which can be linked into assemblies using the {{{../../plugins/maven-link-plugin}link plugin}} (Deprecated naming: <<<netmodule>>>)
* <<<dotnet-maven-plugin>>> - creates a .NET-based Maven Plugin and generates the corresponding java binding (Deprecated naming: <<<netplugin>>>)
* It will further handle <<<visual-studio-addin>>> and <<<sharp-develop-addin>>>, and in the same way as it handles <<<dotnet-library>>>.
[]
* Azure Maven Plugin
The {{{../../plugins/azure-maven-plugin/index.html}Azure Maven Plugin}} defines following types:
----
<plugin>
<groupId>org.apache.npanday.plugins</groupId>
<artifactId>azure-maven-plugin</artifactId>
<version>${project.version}</version>
<extensions>true</extensions>
</plugin>
----
* <<<azure-cloud-service>>> - packages an Azure application as <<<*.cspkg>>>
* <<<azure-cloud-service-configuration>>> - dependency type used for attaching configurations to be deployed
along with the main Azure package (cspkg).
[]
* Web pages and "real" packaging
In addition to the compiled assembly you might also want to publish "runnable" applications. Currently NPanday offers
three packaging types for that:
* <<<dotnet-application>>> - Package executables or plugin assemblies with all dependencies and other needed runtime
files {{{../../plugins/aspnet-maven-plugin/index.html}application-maven-plugin}}
* <<<msdeploy-package>>> - Package MSDeploy-enabled web-applications using
the {{{../../plugins/aspnet-maven-plugin/index.html}aspnet-maven-plugin}}
* <<<asp>>> - uses the ASPX plugin to assemble and possibly precompile an ASP.NET project
[]
{{{./application-packaging.html}Read more about packaging applications}}.
* Custom Lifecycle Maven Plugin
If none of the available default packaging lifecycles match your needs, you may use the
{{{../../plugins/custom-lifecycle-maven-plugin/index.html}Custom Lifecycle Maven Plugin}},
which allows you to install, deploy and resolve all types known to NPanday.
----
<plugin>
<groupId>org.apache.npanday.plugins</groupId>
<artifactId>custom-lifecycle-maven-plugin</artifactId>
<version>${project.version}</version>
<extensions>true</extensions>
</plugin>
----
* <<<dotnet-archive>>> - just a zip-file; can be used, if none of the other types fit you. It is recommended to
create the zip using the {{{http://maven.apache.org/plugins/maven-assembly-plugin/}Maven Assembly Plugin}}, then.
* When you resolve a <<<dotnet-archive>>> you might want to use
{{{http://maven.apache.org/plugins/maven-dependency-plugin/unpack-dependencies-mojo.html}<<<depencendy:unpack-dependencies>>>}}
to unpack it before you compile against your dependencies.
* Further Dependency Types
When attaching or resolving various .NET-related artifacts, these dependency types may be helpful:
* <<<dotnet-executable-config>>> and <<<dotnet-library-config>>> - references to .NET configuration files
* <<<dotnet-symbols>>> - PDB debug information for libraries or executables
* <<<ole-type-library>>> - TLB-files containing type descriptors for .NET COM Interop
* <<<dotnet-vsdocs>>> - XML-file containing intellisense information for libraries or executables
* <<<dotnet-gac>>>, <<<gac_32>>> - dependencies in the respective GAC types variants
(Deprecated: <<<gac>>>, <<<gac_generic>>>, <<<gac_msil>>>)
[]
All packaging/dependency types and their corresponding file extensions known to NPandays plugins are also declared here:
{{{${project.scm.url}/../components/dotnet-core/src/main/java/npanday/ArtifactType.java?view=markup}ArtifactType.java}}