On 4 September 2015 at 15:42, Gilles <gil...@harfang.homelinux.org> wrote:
> Hi.
>
>
> On Fri, 4 Sep 2015 15:30:57 +0100, sebb wrote:
>>
>> On 4 September 2015 at 14:08, Gilles <gil...@harfang.homelinux.org> 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.

No, that's not always the case.
Some components have examples etc that are in a different package entirely.

> 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).

What policy?

Note that although the the Maven coordinates must change when
top-level package names change there is no requirement for them to use
the same naming convention.
In fact they don't - the group id is commons-math3, not math3

>>
>>> Or is there a workaround?
>>
>>
>> Remove the spurious files ...
>
>
> They are not "spurious".
> They just happen to end with ".java".

Yes, they are spurious because they don't belong in the workspace.

It's not just java files that may cause problems.
Unless the build workspace is "clean", various issues may occur.

>>> 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 between
> them?).
>
>
> Thanks,
> Gilles
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to