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 Fri, 02 Oct 2009 11:12:34 GMT
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


Mime
View raw message