ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vyacheslav Daradur <daradu...@gmail.com>
Subject Re: Maven. Issues with flatten plugin
Date Thu, 01 Mar 2018 11:36:12 GMT
I agree with Anton, especially with the following statement:
>> Ignite should be assemblied using package phase,
>> not install in case you want only to assembly it.

Approach with "install" phase may lead to hidden issues in a
development environment.

On Thu, Mar 1, 2018 at 2:26 PM, Nikolay Izhikov <nizhikov@apache.org> wrote:
>> 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
>> >>>>>>
>> >>>>>>
>> >>
>>
>>



-- 
Best Regards, Vyacheslav D.

Mime
View raw message