This fixes #29074 by allow ArtifactHandler to create the PublishArtifact objects, and instead taking in a TaskProvider since that's what the callees use.

This appears to pass tests, but I didn't test it on any projects myself as I am not really familiar with Spring Boot.

I targeted this to 2.3.x since that's the oldest still-supported release. Let me know if I should pick a different branch.

Comment From: wilkinsona

Thanks very much for making your first contribution to Spring Boot, @octylFractal.

I targeted this to 2.3.x since that's the oldest still-supported release. Let me know if I should pick a different branch.

2.5.x is our oldest supported branch. I've cherry-picked the changes onto that branch and merged forwards. They'll be in next week's 2.5.11 and 2.6.5 releases (and the 2.7 and 3.0 milestones).