Dotnet Resources Support (code fix included)
--------------------------------------------
Key: MNG-2487
URL: http://jira.codehaus.org/browse/MNG-2487
Project: Maven 2
Issue Type: Improvement
Components: Sandbox
Environment: Windows XP
Reporter: James Carpenter
Attachments: masterzip.zip
The csharp plugins (currently in the sandbox) do not properly support csharp
resources. It turns out that solving the problem requires changing several of
the standard plugins. To resolve the problem I have made a few small changes
to the following code:
1) Created the maven-dotnet-resources-plugin.
>This plugin is a clone of the standard resources plugin. The only real
change is to change the expression used in computing the output directory
>within the @parameter tag of the Mojos. The output directory of the
maven-dotnet-resources-plugin points at a temporary directory down in
>the target.
>@parameter
expression="${project.build.directory}/csharp-workarea/dotnet-resources-plugin/resources"
>for the DotNetResourcesMojo, similar for the DotNetTestResourcesMojo
>This is the same expression used for the filteredResourcesDirectory
instance variable in the modified maven-compiler-plugin.
>Upon inspection the reader will soon realize the standard and dotnet
resources plugins should be somehow refactored so as to avoid
>the gross copy/paste reuse.
2) maven-compiler-plugin
>Added filteredResourcesDirectory and TestResourcesDirectory to the
CompilerMojo and TestCompilerMojo respectively. This is used to add a
resourceDir custom compiler configuration whenver the attributes point to
actual directories.
3) plexus-compiler-csharp
>Added code to leverage the resourceDir compiler argument now being passed
down by the maven-compiler-plugin.
4) Modified the maven-csharp-lifecycle plugin
>Changed META-INF/plexus/components.xml so as to replace
maven-resources-plugin with maven-dotnet-resources-plugin
================================
Description from new maven-dotnet-resources-plugin (explains the overall
motivation):
The maven dotnet resources plugin is almost identical to the standard resources
plugin. The only difference is the result of
the resources and testResources goals are copied into special workarea
directories under target. Unlike javac which produces
a directory of class files which are typically archived in jar format by the
jar tool after javac has run, the csc (C# compiler) directly
produces an archive (a dll containing the dotnet assembly). Consequently, csc
must be passed each resource using the resource option. The csharp
compiler plugin and this plugin therefore collaborate. This dotnet resources
plugin places the resources in a temporary workarea under target and the csharp
compiler plugin produces resource option arguments to csc for every file found
there. You will notice all the filter support available in the standard
resources plugin is also available in the dotnet resources plugin.
=================================
The attached maven-csharp plugins are currently set to SNAPSHOT as I havn't yet
created a new inhouse release for them. I'll probably do this as soon as I
finish this jira issue.
=================================
The attached zip file contains relevant patch files along with complete zips of
the code. You will notice the csharp plugins are slightly improved from what
is currently in the sandbox. To my knowledge the development of the sandboxed
csharp plugins is rather stagnated. There is probably enough code here to
bring the csharp plugins to an alpha release. I would much prefer to be using
officially released versions rather than having to maintain my own. I am happy
to have a half hour phone conversation with maven developer with commit
priviledges who can make this happen.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira