Chris,
I confess that I have not thought about includes/excludes.
BTW, what happens if some class in the include set references other
class in the exclude set?
E.g.:
package com.acme.greatapp;
class MainClass {
IgnoredClass ic;
...
}
package com.acme.ignoredpackage;
class IgnoredClass {
}
When M2 will invoke javac (or other Java compiler) on the
com/acme/greatapp/MainClass.java then the
com/acme/ignoredpackage/IgnoredClass.java will be compiled also --
hence, not ignored.
Adrian.
Stevenson, Chris wrote:
> Hi Adrian,
>
> I agree, there is quite a lot of complexity involved in setting up new
> compilers. I think this is firstly so that there can be some reuse, I did
> use some of the abstract compiler stuff when adding to the dotnet compiler.
>
> The second reason for the complexity is so that they are reusable components
> in plexus, which I think that the maven bods are trying to push as an AOP
> container in its own right.
>
> I think the failing point in your generic command line plugin is that you
> can't do advanced conviguration of it through the pom.
>
> Ex.
>
> Say I have two directories
>
> src/main/java
> src/main/java-extra
>
> And I want to compile eveything from both folders into my resulting jar
> except the package org.apache.ignoreme, how would you see this functionality
> being implemented with just a drop out to the command line. In the compiler
> plugin you can quite easily add includes and excludes elements etc...
>
> I agree that some of the functionality is redundant across different
> compilers (some of the stuff did not apply at all for my CSharp stuff, like
> the stale source scanner) but some of it did, I used the compiler
> configuration quite extensively.
>
> In the end I think its just the way Brett and the guys chose to model it.
>
> If you have any specific issues with implementing the stuff, I'd be happy to
> help out.
>
> Regards,
>
> Chris
>
> -----Original Message-----
> From: Adrian Herscu [mailto:[EMAIL PROTECTED]
> Sent: 27 February 2006 06:30
> To: Stevenson, Chris
> Subject: Re: [m2] HOWTO: Compilers
>
> Hi Chris,
>
> Consider this pom.xml fragment:
>
> <build>
> <plugin>
> <groupId>org.foo</groupId>
> <artifactId>generic-commandline-plugin</artifactId>
> <executions>
> <execution>
> <id>execution-id</id>
> <phase>phase-id</phase>
> <goals>
> <goal>execute</goal>
> </goals>
> </execution>
> </executions>
> <configuration>
> <executablePath>${foo.home}/bin/foo</executablePath>
> <arguments><!CDATA[ insert your args here ]]></arguments>
> </configuration>
> </plugin>
> </build>
>
> Then the generic-commandline-plugin would launch the ${foo.home}/bin/foo and
> pass it the arguments string as is.
> Wouldn't it be *much* simpler to implement than the current compiler
> plugins?
>
> I have downloaded the Maven sources and started to debug the
> maven-compiler-plugin. (BTW, the Doodle Project provides a .NET plugin for
> M2, but I have not tested it yet)
>
> After one day of debugging (!), I still cannot understand why it is so
> complicated to spawn an OS process and pass it arguments!
>
> One example of this over complexity is the
> org.codehaus.plexus.compiler.CompilerConfiguration class, which is used to
> pass arguments to the javac compiler (of course, it is useless for other
> types of compilers).
>
> Another example is the org.apache.maven.plugin.AbstractCompilerMojo
> class which checks if there are newer sources to compile and if it finds
> such then it invokes the compiler, otherwise it logs "Nothing to compile
> - all classes are up to date". Why is this needed? Isn't this the compiler's
> job?
>
> What am I missing?
> Please comment,
> Adrian.
>
> Stevenson, Chris wrote:
>> Hi Adrian,
>>
>> I've had a bit of a play around with custom compilers, if you'd like
>> to look at some source on how to do it you can download my CSharp stuff
> from JIRA:
>> http://jira.codehaus.org/browse/MOJO-304
>>
>> The specific bits of interest to you should be;
>>
>> plugins\csharp-maven-plugin\src\main\resources\META-INF\plexus\compone
>> nts.xm l (which makes plexus aware of the compiler)
>>
>> plugins\sample\maven-sample-csharp_exe\pom.xml (which shows how you to
>> plumb the compiler into maven using the maven compiler plugin.
>>
>> If you have any more issues, please email. I'll try and help.
>>
>> Chris
>>
>> -----Original Message-----
>> From: news [mailto:[EMAIL PROTECTED] On Behalf Of Adrian Herscu
>> Sent: 23 February 2006 13:38
>> To: [email protected]
>> Subject: [m2] HOWTO: Compilers
>>
>> Hi all,
>>
>> I am trying to understand how compilers are invoked by M2 and
>> eventually how to add support for my own compiler.
>>
>> Please explain how M2 relates to Plexus (in other words why M2 needs
>> Plexus?).
>>
>> Do I need to build my compiler support as a Plexus component?
>>
>> Is it possible to reuse existing M2 compiler support (i.e. from
>> maven-compiler-plugin) for my own compiler? How?
>>
>> Thanks,
>> Adrian.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>> ----------------------------------------------------------------------
>> ---------- The information contained herein is confidential and is
>> intended solely for the addressee. Access by any other party is
>> unauthorised without the express written permission of the sender. If
>> you are not the intended recipient, please contact the sender either
>> via the company switchboard on +44 (0)20 7623 8000, or via e-mail
>> return. If you have received this e-mail in error or wish to read our
>> e-mail disclaimer statement and monitoring policy, please refer to
>> http://www.drkw.com/disc/email/ or contact the sender. 3167
>> ----------------------------------------------------------------------
>> ----------
> ------
>
>
> --------------------------------------------------------------------------------
> The information contained herein is confidential and is intended solely for
> the
> addressee. Access by any other party is unauthorised without the express
> written permission of the sender. If you are not the intended recipient,
> please
> contact the sender either via the company switchboard on +44 (0)20 7623 8000,
> or
> via e-mail return. If you have received this e-mail in error or wish to read
> our
> e-mail disclaimer statement and monitoring policy, please refer to
> http://www.drkw.com/disc/email/ or contact the sender. 3166
> --------------------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]