ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nikolay Izhikov <nizhi...@apache.org>
Subject Re: Maven. Issues with flatten plugin
Date Thu, 01 Mar 2018 11:26:47 GMT
> May be it will be enough to add a profile to parent pom.xml which
activates on deploy stage only.

I think it will be enough to solve my issue.

> What pom.xml becomes flattened, what is removed from it and how it effects
other modules of the same project?

pom.xml that are installed to local repository is flattened.

> Yet, I still do not get a mechanism that causes a problem.

If you want to reproduce it, just do the following steps:

1. remove spark dependencies with `scope=test` from `spark/pom.xml`

2. run:

`~/src/ignite/modules/spark> mvn install -U
-Plgpl,examples,scala,-clean-libs,-release,ml
-Dtest=org.apache.ignite.testsuites.IgniteRDDTestSuite
-Dmaven.javadoc.skip=true -DfailIfNoTests=false`

It will execute OK, because maven uses pom.xml from source.

3. run(only root dir is changed)

`~/src/ignite/> mvn install -U
-Plgpl,examples,scala,-clean-libs,-release,ml
-Dtest=org.apache.ignite.testsuites.IgniteRDDTestSuite
-Dmaven.javadoc.skip=true -DfailIfNoTests=false`

Test will fail with ClassNoDefFoundError because maven will use
pom.xml from local repository which is flattened.

4. remove flatten plugin from `parent/pom.xml`. Re Install parent pom.
Retry step 3. It will succeed.


2018-03-01 14:18 GMT+03:00 Petr Ivanov <mr.weider@gmail.com>:

> May be it will be enough to add a profile to parent pom.xml which
> activates on deploy stage only.
>
> Yet, I still do not get a mechanism that causes a problem. What pom.xml
> becomes flattened, what is removed from it and how it effects other modules
> of the same project?
>
>
>
> > On 1 Mar 2018, at 14:06, Nikolay Izhikov <nizhikov@apache.org> wrote:
> >
> > Andrey, thank you.
> >
> > If there are no other objections I will create ticket for pom structure
> > refactoring.
> >
> > Anton, can you help me with it as an Ignite Release Manager?
> >
> > 2018-03-01 13:45 GMT+03:00 Andrey Novikov <anovikov@apache.org>:
> >
> >> Nikolay,
> >>
> >> I think it can be removed, if parent-pom will be installed(deployed).
> >>
> >> On Thu, Mar 1, 2018 at 5:05 PM, Nikolay Izhikov <nizhikov@apache.org>
> >> wrote:
> >>> Hello, Andrey.
> >>>
> >>> Thanks for an answer.
> >>>
> >>>> As I remember we use `flatten-maven-plugin` for flattening and
> removing
> >> parent relationship in deployed artifacts
> >>>
> >>> So we need it only in `release` profile?
> >>>
> >>> I found some earlier discussion about plugin [1]
> >>>
> >>>> in first versions of build, version was stored in variable in parent
> pom
> >>>
> >>> Got it. Do we need this plugin now?
> >>>
> >>> [1] http://apache-ignite-developers.2346864.n4.nabble.
> >> com/Difference-between-pom-xml-and-pom-installed-xml-td2171.html
> >>>
> >>> В Чт, 01/03/2018 в 16:59 +0700, Andrey Novikov пишет:
> >>>> Nikolay,
> >>>>
> >>>> As I remember we use `flatten-maven-plugin` for flattening and
> >>>> removing parent relationship in deployed artifacts (parent pom does
> >>>> not deploy to repository and in first versions of build, version was
> >>>> stored in variable in parent pom)
> >>>>
> >>>> On Thu, Mar 1, 2018 at 4:57 PM, Nikolay Izhikov <nizhikov@apache.org>
> >> wrote:
> >>>>> Hello, Petr.
> >>>>>
> >>>>>> Can you describe your problem
> >>>>>
> >>>>> In Ignite, maven doesn't include transitive dependencies to test
> >> classpath.
> >>>>> So we have enlist all dependencies in project pom.xml.
> >>>>>
> >>>>>> desired behaviour
> >>>>>
> >>>>> All I want is default maven behavior.
> >>>>>
> >>>>> Please, take a look at pom.xml [1] from line 144.
> >>>>> There is a long list of dependencies with `test` scope.
> >>>>> Actually, all of them are available as a transitive dependency from
> >> `spark-core`.
> >>>>>
> >>>>> We doesn't have to enlist them in every other project that doesn't
> >> use `flatten-plugin`.
> >>>>>
> >>>>> [1] https://github.com/apache/ignite/blob/master/modules/
> >> spark/pom.xml#L144
> >>>>>
> >>>>> В Чт, 01/03/2018 в 11:49 +0300, Petr Ivanov пишет:
> >>>>>> Nikolay,
> >>>>>>
> >>>>>>
> >>>>>> Can you describe your problem and desired behaviour more
> >> thoroughly, please?
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>> On 28 Feb 2018, at 21:16, Nikolay Izhikov <nizhikov@apache.org>
> >> wrote:
> >>>>>>>
> >>>>>>> Hello, Igniters.
> >>>>>>>
> >>>>>>> We have `flatten-maven-plugin` in `parent/pom.xml` [1]
> >>>>>>> As far as I can understand it minimize pom.xml before it
> >> installed in repository.
> >>>>>>>
> >>>>>>> It introduce some strange behavior in modules:
> >>>>>>>
> >>>>>>> I must to enlist all test dependencies in my module to get
tests
> >> work.
> >>>>>>> Otherwise tests fails with ClassNoDefFoundError for transitive
> >> dependencies.
> >>>>>>> It happens in `spark` [2] and `spark_2.10` [3] modules.
> >>>>>>> Now, when I want to enable testing of Spark Examples I has
to
> >> enlist same dependencies in `examples/pom.xml`
> >>>>>>>
> >>>>>>> It looks like a mess for me.
> >>>>>>>
> >>>>>>> Please, help me:
> >>>>>>>
> >>>>>>> 1. Am I miss something and can make pom.xml much clearer?
> >>>>>>>
> >>>>>>> 2. Why we need to minimize pom.xml? It looks like other
Apache
> >> project doesn't do it [5].
> >>>>>>>
> >>>>>>> [1] https://github.com/apache/ignite/blob/master/parent/pom.
> >> xml#L612
> >>>>>>> [2] https://github.com/apache/ignite/blob/master/modules/
> >> spark/pom.xml#L144
> >>>>>>> [3] https://github.com/apache/ignite/blob/master/modules/
> >> spark-2.10/pom.xml#L150
> >>>>>>> [4] https://github.com/apache/ignite/pull/3590/files#diff-
> >> 08740066c64337d38cccd84991ac0912R155
> >>>>>>> [5] http://central.maven.org/maven2/org/apache/kafka/kafka_
> >> 2.12/1.0.0/kafka_2.12-1.0.0.pom
> >>>>>>
> >>>>>>
> >>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message