The settings.xml we use is injected by the Jenkins setup for out
jobs. If changing the settings.xml could make this transparent,
that would help, but it appears that hasn't been done.
Unfortunately, that would also mean that builds outside of the
Jenkins infrastructure would need to modify the settings.xml, which
seems like a recipe for failure. It's hard enough to get people to
build using a profile instead of just "mvn". Getting them to modify
their settings.xml, or use a different settings.xml, doesn't seem
likely to happen.
Putting the configuration in the parent pom and requiring people to
build using a profile defined there seemed like the best we could
do. If there's a way to modify the configuration in the parent pom
so that the build would work
without using a profile, that
would be even better, but I'm not enough of a Maven expert to know
how or if we could do that.
Terry Yanko wrote on 1/22/20 8:33 AM:
Hi Bill,
I got some feedback from my college Joel Orlina related to
the issue above (he did most of the provisioning for
jakarta.oss.sonatype). Here is what he had to say:
Typically, the server ID that the
build uses is sourced in a Maven settings.xml file. And I
would have figured that their build processes sourced the
settings.xml file from a Central location. I can't recall
off the top of my head whether you can specify a different
settings file in a profile, but maybe that's what's
happening.
Is this helpful at all?
Best,
Terry
The console output is
here.
You can see that without the use of the -Pstaging profile
it's trying to access
oss.sonatype.org
instead of
jakarta.oss.sonatype.org.
Is there supposed to be something that redirects it to
jakarta.oss.sonatype.org?
Without that, I completely understand why it's failing.
How do you think this is supposed to work?
Terry Yanko wrote on 1/20/20 9:16 AM:
Hi Bill,
There should have been no additional configuration
options required to release against the
jakarta.oss.sonatype.org
endpoint. I'm glad you found a partial workaround, but
if you could please provide logs from the initial
failed deployment we can help diagnose the issue.
Also, consider creating a new ticket for this at
https://issues.sonatype.org/projects/MVNCENTRAL which
would raise the visibility of this issue to our other
team members.
Best,
Terry
I thought that all
I would need to do to use the new Nexus was to change
my
project to use the new parent pom with the new profile
configurations and then
poof! it would all work just like before.
That appears to not be the case.
Previously I could deploy to the staging repository
without specifying any
special profile; the default deployed to the OSSRH
staging repository. But now
I want to deploy to the Jakarta Nexus staging
repository, so all deployment
operations need to specify "-Pstaging" to get the
configuration for the new
repository. And of course that means I can only
deploy projects that have been
updated to use the new parent pom. (There's probably
a way to deploy an older
project without updating it, but I'll let someone else
figure that out.)
I figured this out the hard way. I sure wish someone
had written this down.
What are the other changes I'm going to need to make?
In particular, how
exactly should I release staged artifacts and promote
them to final? Do I just
use -Pstaging along with nexus-staging:rc-release?