[hibernate-dev] Build and AnnotationProcessors

Steve Ebersole steve at hibernate.org
Thu Apr 18 09:18:10 EDT 2013


1) Making IDE setup simpler does not necessarily mean making the CLI 
builds more complicated.  That is a somewhat obvious statement, but one 
I think we need to keep in mind here.

2) The AnnotationProcessor question was kind of a separate question.  I 
am curious why you think that  combining the AP output into one dir 
(well one per "source set", aka "main" and "test") is "less organized" 
than what we do now?  Unless you navigate (aka, cd ...) into those 
generated sources and need to know which sources came from which 
processor; and I can't fathom the benefit of that, can't see the use 
case for doing that.

3) There is still this separate question altogether of whether the CLI 
and IDE builds should share compilation output paths.  It is quite 
possible to say that Gradle continues to compile project sources into 
target/classes/{sourceSetName} but that we let the IDE project compile 
into its own compilation paths (IDEA prefers 
out/{production|test}/{moduleName} e.g.).


As to the specific question of performance, I can't say.  We can't do 
that today, so its not something I can answer in regards to the 
Hibernate codebase.

And as far as "processor which really matter", how quickly you throw 
your metamodel generator work under the bus :)  But I'd say that 
generating that stuff matters just as much.  Tests are kinda important 
ya know ;)


On 04/18/2013 07:27 AM, Hardy Ferentschik wrote:
> On 17 Jan 2013, at 9:33 PM, Brett Meyer <brmeyer at redhat.com> wrote:
>
>> "Get the sources and load it directly in your IDE.  IMO that is stupid."
>>
>> Honestly, that's always been the absolute *first* thing I do.  I'd argue that most contributing developers are interested in the src, first and foremost.
> For sure. I am not saying that you should not be able to load the sources into an IDE, but does the IDE need to be able to compile the
> project out of the box? That's in my opinion a different question.
>
> Also there might be a question of performance. Would adding the annotation processors to the IDE javac calls not also mean that the processors
> are called on each incremental compile?
>
> The only processor which really matters during the development is the logging annotation processor. It would be nice if when adding a new log method
> the interface would be updated automatically, but if that implies a notably change in performance I rather stick to manually rebuild the Log interface when
> I am adding a new log method. You can always configure your annotation processor manually.
>
>>   My intentions for working on the Eclipse generation was to make IDE setup as painless as possible.  Is it important to have a well-developed build process?  Of course.
>> But it's also important to balance that with removing as many roadblocks as possible that might detract contributors.
> Right, it needs to be a balance. However, I don't think that we have lost a contributor over this.
>
> --Hardy



More information about the hibernate-dev mailing list