blob: 8a7174e3057a481273194231798860a7353f9d10 [file] [log] [blame]
----
Usage
----
----
2010-07-05
----
~~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.
Usage
* Pass-Through Compiler Commands
There may be cases that the specific compiler option that you want to use may not be directly supported by the
maven-compile-plugin. In this case, you can use the parameter(s) tag to pass through the command to the compiler.
Be aware that the command filter specified within the compiler-plugins.xml may choose not to pass this parameter
to the compiler. Typically, this will only be done for unsupported commands: (you will see a warn message in the output
if this occurs).
+----+
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compile-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<parameters>
<parameter>/optimize+</parameter>
</parameters>
</configuration>
</plugin>
</plugins>
+----+
* Setting Framework Version
By default, the framework version for the main compile and the test compile are both 2.0.50727. To change this to
version 1.1, set the \<frameworkVersion/> & \<testFramework/> tags. Note that setting the \<frameworkVersion/> to 1.1.4322, will
not set the \<testFrameworkVersion/>: you will need to set both if your project also includes NUnit tests.
+----+
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compile-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<parameters>
<frameworkVersion>1.1.4322</frameworkVersion>
<testFrameworkVersion>1.1.4322</testFrameworkVersion>
</parameters>
</configuration>
</plugin>
</plugins>
+----+
The frameworkVersion is not supported for DotGNU: it depends on the target profile that the compiler was built under.
* Compiling for Multiple Platforms
It is important to understand what setting the \<vendor/> tag means for multi-platform builds.
* In the case of not
setting the \<vendor/> tag, NPanday will use the Microsoft compiler for the windows platform and MONO for all other
platforms. By not specifying the vendor, you are indicating that the application should build with with both Microsoft
and Mono compilers. For most development environments, Microsoft is installed on Windows, and Mono comes by default
on many Linux distributions: so this option is usually a safe bet for multi-platform builds.
* In the case of setting the \<vendor/> tag to MICROSOFT, the application will only build under that compiler on Windows.
If you are using any Microsoft specific APIs (or any of the missing APIs in MONO), then you should set the vendor tag to
MICROSOFT.
* In the case of setting the \<vendor/> tag to MONO, the platform obviously must have Mono installed to be buildable. This
option should be used if you are using any of the Mono specific APIs that you are not including within the dependency
path of Maven.
* In the case of setting the \<vendor/> tag to DotGNU, the platform obviously must have DotGnu installed to be buildable.
The DotGNU compiler is not included
as a default for any of the platforms: so to target this environment, you must set the \<vendor/> tag. Also you may run
into some problems since there is currently no way to set the frameworkVersion/profile. I am giving some thought to this
problem, so keep an eye on the documentation.