maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Werner Guttmann <wgut...@codehaus.org>
Subject Re: How to add generated resources directory in a plugin
Date Tue, 06 Oct 2009 18:52:17 GMT
Which is exactly what I ended up doing. Thanks for everybody's patience ...

Werner

Roland Asmann wrote:
> Werber,
> 
> Understandable. Then add the generated folder as a sources-folder and a
> resources-folder with a filter on '**/*.java'. I guess that would be the
> easiest way, in case more resource-types make it into this folder.
> 
> Roland
> 
> 
>> Roland,
>>
>> I wish I had a choice, but I have to keep backwards-compatibility. Until
>> now, we used to offer one property on the Mojo to set the output path
>> (with a default of target/generated-sources/castor).
>>
>> Now, we are offering a second option for the resource files generated,
>> but I still have to cater for those expecting things in the old location.
>>
>> Werber
>>
>> Roland Asmann wrote:
>>> Read the part about editing the plugin again... If you're working on the
>>> actual castor-plugin, wouldn't it be easier to just separate the sources
>>> and
>>> resources instead of adding the resources with inclusion/exclusion
>>> rules?
>>>
>>>
>>> On Friday 02 October 2009 13:45, Werner Guttmann wrote:
>>>> Eric,
>>>>
>>>> the .castor.cdr files are a by-product of generating Java classes from
>>>> an XML schema using the XML code generator of Castor (through the Maven
>>>> plugin for Castor).
>>>>
>>>> Those resource files are being generated in
>>>> target/generated-sources/castor during code generation.
>>>>
>>>> I hopes this makes it clearer ....
>>>>
>>>> Werner
>>>>
>>>> Lewis, Eric wrote:
>>>>> Just out of curiosity: Is there a reason that you keep the .cdr files
>>>>> in
>>>>> src/main/java? IMHO you could have them in src/main/resources, since
>>>>> they
>>>>> end up in target/classes anyway.
>>>>>
>>>>> Best regards,
>>>>> Eric
>>>>>
>>>>>> -----Urspr√ľngliche Nachricht-----
>>>>>> Von: Werner Guttmann [mailto:wguttmn@codehaus.org]
>>>>>> Gesendet: Freitag, 2. Oktober 2009 13:13
>>>>>> An: Maven Users List
>>>>>> Betreff: Re: How to add generated resources directory in a plugin
>>>>>>
>>>>>> That does not really match what I am observing .. :-(.
>>>>>>
>>>>>> If I generate Java sources and resources into
>>>>>>
>>>>>> target/generated-sources/castor
>>>>>>
>>>>>> and use
>>>>>>
>>>>>> project.addCompileSourceRoot("target/generated-sources/castor")
>>>>>>
>>>>>> within the Maven plugin for Castor, Maven will include the generated
>>>>>> Java classes during compilation and put the class files in
>>>>>> target/classes of the project.
>>>>>>
>>>>>> As a result of this, users of the Maven plugin for Castor
>>>>>> currently have
>>>>>> to add the following section to their project POMs.
>>>>>>
>>>>>> <resources>
>>>>>>    <resource>
>>>>>>       <directory>target/generated-sources/castor</directory>
>>>>>>       <includes>
>>>>>>          <include>**/*.cdr</include>
>>>>>>       </includes>
>>>>>>    </resource>
>>>>>>    <resource>
>>>>>>       <directory>src/main/resources</directory>
>>>>>>    </resource>
>>>>>> </resources>
>>>>>>
>>>>>> to have those .castor.cdr Files copied to target/classes as
>>>>>> well. As we
>>>>>> all know, this is error-prone.
>>>>>>
>>>>>> As such, I tried to add code to the Maven plugin for Castor
>>>>>> as follows:
>>>>>>
>>>>>> Resource resource = new Resource();
>>>>>> resource.setDirectory( getResourceDestination().getAbsolutePath()
);
>>>>>> List<String> includes = new LinkedList<String>();
>>>>>> includes.add( "**/*.cdr" );
>>>>>> resource.setIncludes( includes );
>>>>>> project.addResource( resource );
>>>>>>
>>>>>> Problem is that once I add that code, the Java source files start
>>>>>> showing up in target/classes, which is not ideal.
>>>>>>
>>>>>> Any idea what's going wrong here ?
>>>>>>
>>>>>> Werner
>>>>>>
>>>>>> Roland Asmann wrote:
>>>>>>> I believe this can work (not 100% sure, I generate into two
>>>>>> different
>>>>>>
>>>>>>> directories for sources and resources), but you should
>>>>>> probably ONLY use the
>>>>>>
>>>>>>> addCompileSourceRoot for your directory...
>>>>>>>
>>>>>>> The way I understand it, is that if you put sources &
>>>>>> resources there, they
>>>>>>
>>>>>>> are compiled to the output dir. Java knows how to handle
>>>>>> .java-files -->
>>>>>>
>>>>>>> convert them to classes, and how to handle anything else
>>>>>> --> just copy.
>>>>>>
>>>>>>> If you use the resource-dir, maven will handle the copying
>>>>>> and will copy
>>>>>>
>>>>>>> everything from the source to the target, without compiling.
>>>>>>>
>>>>>>> So, I presume you have used both calls I gave you, although
>>>>>> you should only
>>>>>>
>>>>>>> use one.
>>>>>>>
>>>>>>> Hope this helps,
>>>>>>>
>>>>>>> On Thursday 01 October 2009 15:15, Werner Guttmann wrote:
>>>>>>>> Hi Roland,
>>>>>>>>
>>>>>>>> does this pattern/recipe change if both resources and Java
>>>>>> classes would
>>>>>>
>>>>>>>> be generated in the same directory. I have tried this a
>>>>>> few days ago
>>>>>>
>>>>>>>> (trying to automate a few things for the
>>>>>> castor-maven-plugin), and it
>>>>>>
>>>>>>>> seems like this does not really work.
>>>>>>>>
>>>>>>>> Assume you have a directory where you'll find ....
>>>>>>>>
>>>>>>>> - A.java
>>>>>>>> - B.java
>>>>>>>> - .castor.cdr
>>>>>>>>
>>>>>>>> where the last is a resource file. If I use above code
>>>>>> snippets, I can
>>>>>>
>>>>>>>> see in the target folder after a plugin run and subsequent
>>>>>> compilation
>>>>>>
>>>>>>>> the compiled Java classes, the resource file and the source
files.
>>>>>>>>
>>>>>>>> How can I avoid the source files to be copy across ?
>>>>>>>>
>>>>>>>> Regards
>>>>>>>> Werner
>>>>>>>>
>>>>>>>> Roland Asmann wrote:
>>>>>>>>> Assuming you already have the maven-project as a variable
>>>>>> in your plugin
>>>>>>
>>>>>>>>> (if not, add it!):
>>>>>>>>>
>>>>>>>>> project.addCompileSourceRoot("your output directory here");
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> And in the case of resources:
>>>>>>>>>
>>>>>>>>> Resource resource = new Resource();
>>>>>>>>> resource.setDirectory("your output directory here");
>>>>>>>>> resource.addInclude("**/*");
>>>>>>>>> project.addResource(resource);
>>>>>>>>>
>>>>>>>>> On Thursday 01 October 2009 13:59, Lewis, Eric wrote:
>>>>>>>>>> Hi
>>>>>>>>>>
>>>>>>>>>> I'm writing a plugin which generates resources and
also
>>>>>> test resources.
>>>>>>
>>>>>>>>>> How in my plugin can I add these directories to the
>>>>>> sources paths and
>>>>>>
>>>>>>>>>> the test resources paths? (Except for using the
>>>>>> build-helper plugin)
>>>>>>
>>>>>>>>>> Best regards,
>>>>>>>>>> Eric
>>>>>> ---------------------------------------------------------------------
>>>>>>
>>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>>>>>>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>>> ---------------------------------------------------------------------
>>>>>>
>>>>>>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>>>>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>>> For additional commands, e-mail: users-help@maven.apache.org
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>>
>>
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Mime
View raw message