commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gilles <>
Subject Re: [Math] Compile only top-level package and below
Date Fri, 04 Sep 2015 14:42:58 GMT

On Fri, 4 Sep 2015 15:30:57 +0100, sebb wrote:
> On 4 September 2015 at 14:08, Gilles <> 
> wrote:
>> Hello.
>> There are two branches for Commons Math.
>> For one, the top-level Java package is
>>   org.apache.commons.math4
>> For the other, it is
>>   org.apache.commons.math3
>> Unless I'm mistaken, this should imply that maven tries to compile
>> only files under either
>>   src/main/java/org/apache/commons/math4
>>   src/test/java/org/apache/commons/math4
>> or
>>   src/main/java/org/apache/commons/math3
>>   src/test/java/org/apache/commons/math3
> No, Maven compiles everything under src/[main|test]/java by default.
> You could change that to
> src/main/java/org/apache/commons/math4
> but then the compiler would complain about mismatched package names
>> But it happens that I have currently files in "math3" not currently
>> checked in into git: those are new files which git does not remove
>> when switching branches.
> That's the problem - spurious files in the workspace.
>> Then when starting a compilation in "master" (where the top-level
>> is "math4"), lots of compilation errors occur.
>> The "source" top-level directories do not seem to be specified
>> in the project's POM.
> No, because Maven defaults to the standard directory layout.
>> Can the parent be changed in order to produce the desired behaviour?
> Well, you might be able to exclude all files under math3/math4 but it
> will be tricky to do and non-standard.

But it is standard: source files must belong to the "top-level" package
of the project.

We don't change the top of the package hierarchy, just filter out the
files that do not belong to the project (as per the policy).

>> Or is there a workaround?
> Remove the spurious files ...

They are not "spurious".
They just happen to end with ".java".

>> Is there a better way to handle the situation (short of manually
>> moving the source files back and forth)?
> Why not use two checkouts and switch between them instead of 
> switching
> the contents of a single checkout?

I might have to resort to that.
But it does not look nice (IOW why having branches if not to switch 


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message