Hi John,
Any reason why each plugin has to generate its sources into its own
plugin-prefix root directory?
After all as I add class after class and package after package into
the src directory I don't feel the need
to start lots of new top level directories.
In fact if it wasn't for the fact that I wanted to be able to do a
clean, I would have put the generated sources
in the src directory as there is otherwise nothing special about
them. The only pollution I can think of is if
you wanted to do a fine-grained clean on just one plugin - but maybe
I'm not thinking very hard!
Of course if this is to become the standard for maven then I am happy
to do this also.
- Ashley
On 14 Dec 2005, at 18:46, John Casey wrote:
We already have some default "standards" for generation of code.
First, code should be generated into:
${project.build.directory}/generated-sources/${plugin-prefix}
Correspondingly, generated resources would go in:
${project.build.directory}/generated-resources/${plugin-prefix}
This accommodates multiple code generators within the same build
process, with no pollution of one by another. Tracking these new
source/resource locations is easy; in your plugin, simply call:
project.addCompileSourceRoot(..);
project.addResource(..);
Of course, we also define analogous structures for test sources/
resources.
We've found in the past that this offers a pretty good compromise
between a clean structure per generating plugin, and simplicity of
directory layouts. The full-scale src/(main|test)/(java|resources)
directory structure isn't that useful in this case, since the
generated sources/resources will not have to be maintained.
HTH,
John
Dário Luís Coneglian Oliveros wrote:
Hi Jochen,
One way to avoid the problem you mentioned is to have something like:
- target
- generated
- src
- main
- java
- resources
- test
- java
...
This way we would keep a similar Maven directory layout for the
generated files.
[Jochen] Why do you need to tell the compiler that there is a new
source directory? This is the plugins task and it should do so
automatically?
[Dário] In case we use plugins such as ejbdoclet, hibernatedoclet
and so on. When using any of these, you end up having your files
generated somewhere. Thus you need to tell Maven where to find
them in order to compile them. Having a standard layout for
generated files, this setting could be defined implicitly. Do you
know how a plugin could tell Maven on the fly about the existence
of a new source directory ? If this is possible, then a plugin
could have its own generated directory and inform it to Maven.
Despite I still think it would be great to have a standard
directory layout for generated files.
Regards,
Dário
-----Original Message-----
From: Jochen Wiedmann [mailto:[EMAIL PROTECTED]
Sent: quarta-feira, 14 de dezembro de 2005 09:32
To: Maven Users List
Subject: Re: [m2] Standard directory layout for generated sources
On 12/14/05, Dário Luís Coneglian Oliveros <[EMAIL PROTECTED]>
wrote:
When looking at the standard layout directory, I thought it would
be great to have a common directory for the generated sources
also since Maven already has a generate-sources lifecycle phase.
This way we don´t need to tell the compiler where to find the
generated sources.
I disagree. First of all, a single directory woudn't be sufficient:
For example, you generate not only sources, but also resources. Both
may be generated for tests as well. So we end up with four. Besides,
it is not unusual to process one generators files with another
generator. In other words, the formers output directory becomes the
latters input directory.
But, what makes me wonder the most: Why do you need to tell the
compiler that there is a new source directory? This is the plugins
task and it should do so automatically?
Jochen
--
Often it does seem a pity that Noah and his party did not miss the
boat. (Mark Twain)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]