in src/main/java/org/apache/maven/plugins/scmpublish/AbstractScmPublishMojo.java [313:356]
private void setupScm() throws ScmRepositoryException, NoSuchScmProviderException {
String scmUrl;
if (localCheckout) {
// in the release phase we have to change the checkout URL
// to do a local checkout instead of going over the network.
String provider = ScmUrlUtils.getProvider(pubScmUrl);
String delimiter = ScmUrlUtils.getDelimiter(pubScmUrl);
String providerPart = "scm:" + provider + delimiter;
// X TODO: also check the information from releaseDescriptor.getScmRelativePathProjectDirectory()
// X TODO: in case our toplevel git directory has no pom.
// X TODO: fix pathname once I understand this.
scmUrl = providerPart + "file://" + "target/localCheckout";
logInfo("Performing a LOCAL checkout from " + scmUrl);
}
ReleaseDescriptorBuilder descriptorBuilder = new ReleaseDescriptorBuilder();
descriptorBuilder.setInteractive(settings.isInteractiveMode());
descriptorBuilder.setScmPassword(password);
descriptorBuilder.setScmUsername(username);
// used for lookup of credentials from settings.xml in DefaultScmRepositoryConfigurator
descriptorBuilder.setScmId(serverId);
descriptorBuilder.setWorkingDirectory(basedir.getAbsolutePath());
descriptorBuilder.setLocalCheckout(localCheckout);
descriptorBuilder.setScmSourceUrl(pubScmUrl);
descriptorBuilder.setPushChanges(pushChanges);
if (providerImplementations != null) {
for (Map.Entry<String, String> providerEntry : providerImplementations.entrySet()) {
logInfo(
"Changing the default '%s' provider implementation to '%s'.",
providerEntry.getKey(), providerEntry.getValue());
scmManager.setScmProviderImplementation(providerEntry.getKey(), providerEntry.getValue());
}
}
ReleaseDescriptor releaseDescriptor = descriptorBuilder.build();
scmRepository = scmRepositoryConfigurator.getConfiguredRepository(releaseDescriptor, settings);
// set pushChanges afterwards due to https://issues.apache.org/jira/browse/MRELEASE-1160
scmRepository.getProviderRepository().setPushChanges(pushChanges);
scmProvider = scmRepositoryConfigurator.getRepositoryProvider(scmRepository);
}