On Sun, 18 Dec 2022 at 23:53, Gilles Sadowski <gillese...@gmail.com> wrote:
>
> Le lun. 19 déc. 2022 à 00:17, Alex Herbert <alex.d.herb...@gmail.com> a écrit 
> :
> >
> > On Sun, 18 Dec 2022, 23:06 Gilles Sadowski, <gillese...@gmail.com> wrote:
> >
> > > Le dim. 18 déc. 2022 à 23:10, Alex Herbert <alex.d.herb...@gmail.com> a
> > > écrit :
> > > >
> > > > I think the name for the distribution archive is collected in:
> > > >
> > > > dist-archive/src/assembly/[bin|src].xml
> > > >
> > > > These use ${project.artifactId}-${project.version} by specifying the
> > > > <baseDirectory> tag.
> > > >
> > > > So renaming the artifactId for the dist-archive in the pom.xml from
> > > > commons-math to commons-math4 fixes this.
>
> Commit e2dd8f1a0d559967a0f9a3cd538b96d66561adc6 (in "master").
>
> > >
> > > Thus the "mistake" is in the definition of <artifactId> in the
> > > "dist-archive" module: By the current convention, it must be
> > > "commons-math4".  [Similarly to the <artifactId> of module
> > > "commons-math-core" being "commons-math4-core".]
> > >
> > > Now I wonder: Is this distinction (with or without the "4") really
> > > necessary in what the elements are used for?
> > > E.g. for the file names referred to in the previous message:
> > >     commons-math-4.0-beta1-bin.tar.gz
> > > vs
> > >     commons-math4-4.0-beta1-bin.tar.gz
> > > why is the latter better than the former?
> > > IOW, the "4" is redundant since it is present in the "version"
> > > string.  So why keep track, in the POM files, of distinct strings
> > > "commons-math" and "commons-math4" if wherever they are
> > > used, the "version" string is also used?
> > >
> > > Hence, could we adopt a new, less error-prone, convention that
> > > will be simpler: <artifactId> is always composed of the string
> > > "commons", a hyphen, and the name of the component,
> > > irrespective of version?
> > >
> >
> >
> > I don't know the history here but looking at commons Lang the download for
> > the 2.x line does not have lang2 in the name but for the 3.x line it does
> > have lang3.
> >
> > https://commons.apache.org/proper/commons-lang/download_lang.cgi
> >
> > I thought the artifact id was used in commons to match the package name.
>
> That is the reason, indeed.
>
> > So
> > you can import math3 and math4 artifacts. So it is important for jar
> > artifacts.
>
> Ah, yes.
>
> >
> > But for the distribution module having the math4 is redundant, but also
> > harmless to keep it included.
>
> Sure.  And if the <artefactId> must be different (so that several "different"
> libraries can be fetched through maven), then it is better to be consistent
> in the naming; thus arriving at the current convention (even though it is
> redundant in the case of the distribution files).

Group Id + Artifact Id are the Maven co-ordinates used to distinguish
different release families.

Java does not allow multiple classes with the same full classname
(i.e. including the package) on the same classpath.

So Maven does not allow multiple jars on the same classpath with the
same co-ordinates.

It is vital that there is a one-to-one correspondance between Java
classname and Maven co-ordinate.
Change one, and you must change the other to avoid the possibility jar hell.


> 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