I've logged BEAM-4382 [1] to decouple maven archetype generation from the rest of the Maven build. Luke, would you mind adding any context you have about generating archetypes from Gradle? From a quick search I couldn't find a native Gradle plugin, but perhaps the logic is simple enough to roll our own logic.
[1] https://issues.apache.org/jira/browse/BEAM-4382 On Mon, May 21, 2018 at 11:16 AM Lukasz Cwik <[email protected]> wrote: > The archetype projects are coupled to their parents but don't have any > meaningful dependencies so a significantly simpler archetype could be used. > The dependency that exists right now in the archetype is to provide > specific build ordering which can easily be moved to Gradle directly. > > An alternative would be to migrate the Maven archetype build to use > Gradle. Assembling the Maven archetype jar is easy as no compilation is > required, the issue was about running/validating that the archetype can be > built. > > On Fri, May 18, 2018 at 12:20 PM Scott Wegner <[email protected]> wrote: > >> +1 to the Lukasz's proposed solution. Depending on artifacts published >> from a previous build it's fragile and will add flakiness to our test runs. >> We should make pre-commits as hermetic as possible. >> >> Depending on the transitive set of publishToMavenLocal tasks seems >> cumbersome, but also necessary. >> >> On a related note: The archetype projects are shelling out to mvn for the >> build, which uses the existing pom.xml files. This places a build >> dependency on the pom.xml files down to the project root due to parent >> relationships. Has there been any investigation on whether we can decouple >> archetype generation from our Maven pom.xml files? >> >> On Fri, May 18, 2018 at 10:47 AM Lukasz Cwik <[email protected]> wrote: >> >>> We would need the archetype task to depend on all the dependencies >>> publishToMavenLocal tasks transitively and then be configured to use >>> whatever that maven local is on Jenkins / dev machine. It would be best if >>> it was an ephemeral folder because it would be annoying to have stuff >>> installed underneath a devs .m2/ directory that would need cleaning up. >>> >>> On Fri, May 18, 2018 at 10:41 AM Kenneth Knowles <[email protected]> wrote: >>> >>>> Is this just a build tweak, or are there costly steps that we'd have to >>>> add that would slow down presubmit? (with mvn I know that `test` and >>>> `install` did very different amounts of work - because mvn test didn't test >>>> the right artifacts, but maybe with Gradle not so much?) >>>> >>>> On Fri, May 18, 2018 at 9:14 AM Lukasz Cwik <[email protected]> wrote: >>>> >>>>> The problem with the way that the archetypes tests are run (now with >>>>> Gradle and in the past with Maven) is that they run against the nightly >>>>> snapshot and not against artifacts from the current build. To get them to >>>>> work, we would need to publish the dependent Maven modules to a temporary >>>>> repo and instruct the archetype project to use it for building/testing >>>>> purposes. >>>>> >>>>> On Fri, May 18, 2018 at 5:38 AM Kenneth Knowles <[email protected]> >>>>> wrote: >>>>> >>>>>> Maybe something has changed, but the snapshots used to pull from the >>>>>> public snapshot repo. We got failures for a while every time we cut a >>>>>> release branch, but once there was a nightly snapshot they cleared up. >>>>>> >>>>>> Kenn >>>>>> >>>>>> On Thu, May 17, 2018 at 9:50 PM Scott Wegner <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> I noticed that tests tests simply run "mvn clean install" on the >>>>>>> archetype project. But I don't see any dependent task which installs >>>>>>> built >>>>>>> artifacts into the local Maven repo. Is that an oversight? >>>>>>> >>>>>>> If that's the case, perhaps the tests are failing sporadically when >>>>>>> there are no previously installed snapshot artifacts cached on the >>>>>>> machine. >>>>>>> >>>>>>> On Thu, May 17, 2018, 2:45 PM Pablo Estrada <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>>> I'm seeing failures on Maven Archetype-related tests. >>>>>>>> >>>>>>>> Build Scan of a sample run: >>>>>>>> https://scans.gradle.com/s/kr23q43mh6fmk >>>>>>>> >>>>>>>> And the failure is here specifically: >>>>>>>> https://scans.gradle.com/s/kr23q43mh6fmk/console-log?task=:beam-sdks-java-maven-archetypes-examples:generateAndBuildArchetypeTest#L116 >>>>>>>> >>>>>>>> >>>>>>>> Does anyone know why this might be happening? >>>>>>>> Best >>>>>>>> -P. >>>>>>>> -- >>>>>>>> Got feedback? go/pabloem-feedback >>>>>>>> <https://goto.google.com/pabloem-feedback> >>>>>>>> >>>>>>>
