On Fri, 4 Sep 2015 16:26:16 +0100, sebb wrote:
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?
Do you that it's OK to have an Apache project publish files that are
not
under the project's top-level package?
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.
I just want that maven does not to compile things under a "math3"
when the project is "math4" (and vice-versa).
That seems pretty reasonable.
Gilles
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