A proof of concept bom generation maven plugin has been written.

https://github.com/jetty-project/bom-maven-plugin

It can currently generate a bom from the projects present in the reactor.
I consider this ideal, as only the projects we deploy will be on the
reactor (adding/removing/skipping will all be instantly reflected without a
maintenance task on the jetty-bom).

The (preliminary) example configuration:

https://github.com/eclipse/jetty.project/blob/issue-generate-bom/jetty-bom/pom.xml

Actual output produced:

https://gist.github.com/joakime/0a78afcdde515f48389ce975a3f15e51

What's left to figure out:

Now that we can generate the bom from the list of projects in the reactor
(with include/exclude filtering).
How do we get it installed (to the local repo) and deployed (to the
snapshot repo and release repo) in a minimal amount of hassle?

Traditionally, you would attach the generated artifacts, but that means it
would be a artifact with a classifier on the project.

Using maven-deploy-plugin:deploy-file in the project pom is quirky as you
have to declare a url configuration parameter (which is different for
snapshot vs release builds).

Internally, the bom-maven-plugin could use
the org.apache.maven.shared.project.deploy.ProjectDeployer from
maven-artifact-transfer-<ver>.jar
But that would require a fully fleshed out project to be declared to use
that class.
There's also the org.apache.maven.shared.artifact.deploy.ArtifactDeployer
available, but I've never used that before.
Setting up a ProjectBuildingRequest seems daunting.


Joakim Erdfelt / [email protected]

On Thu, Jun 8, 2017 at 3:02 PM, Greg Wilkins <[email protected]> wrote:

>
>
> On 8 June 2017 at 16:00, Joakim Erdfelt <[email protected]> wrote:
>
>> On Thu, Jun 8, 2017 at 4:13 AM, Olivier Lamy <[email protected]> wrote:
>>
>>>
>>>
>>> On Thu, Jun 8, 2017 at 6:11 PM, Greg Wilkins <[email protected]> wrote:
>>>
>>>> I tried but failed to get the jetty-bom released for 9.4.6
>>>> I got it to oss.sonatype, but it failed a rule on closing the staged
>>>> repo.
>>>>
>>>
>>> which rule?
>>>
>>
>> Cannot release the same version again.
>> If any artifact in your staging repository already exists on central,
>> then that entire staging repository is invalid.
>>
>
>
> It's not being released again.  jetty-bom for 9.4.6 has never been
> released.
>
>
>
>>
>> Lets take a look at the tag.
>>
>> https://github.com/eclipse/jetty.project/blob/jetty-9.4.6.
>> v20170531/pom.xml#L92
>>
>> Yup, the jetty-bom is part of the module tree, so its part of the reactor.
>>
>> https://github.com/eclipse/jetty.project/blob/jetty-9.4.6.
>> v20170531/jetty-bom/pom.xml#L5
>>
>>
> But why wasn't it updated?
>
>
>
>> That's the reason, since the jetty-bom is no longer participating in the
>> hierarchy of the parent, its isolated, considered a separate release from
>> the rest of the project.
>> The jetty-bom itself does not participate in the maven release process
>> properly.
>>
>> However, the other artifacts, that are part of the hierarchy are updated
>> (example, the dependencies in the jetty-bom)
>>
>> https://github.com/eclipse/jetty.project/blob/jetty-9.4.6.
>> v20170531/jetty-bom/pom.xml#L97
>>
>> It simply cannot be part of the release and be unconnected from the
>> hierarchy at the same time.
>>
>> There are only 2 options left
>>
>> 1) jetty-bom as a standalone project with its own release
>>
>> 2) Generate the jetty-bom during the build and perform a pom artifact
>> swap during install/deploy (like you can with the shade plugins)
>>
>>
> I've seen other projects that have a sub-module that does not list a
> parent module.
>
> I still think something strange is going on here....
>
> I'll do some test release prepares in the next few days to work it out.
>
> cheers
>
>
>
>> _______________________________________________
>> jetty-users mailing list
>> [email protected]
>> To change your delivery options, retrieve your password, or unsubscribe
>> from this list, visit
>> https://dev.eclipse.org/mailman/listinfo/jetty-users
>>
>
>
>
> --
> Greg Wilkins <[email protected]> CTO http://webtide.com
>
> _______________________________________________
> jetty-users mailing list
> [email protected]
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/jetty-users
>
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to