How do I replace a Maven repository with a local directory after it is defined in a Gradle build?
up vote
1
down vote
favorite
I'm trying to write tests for a build process, so my unit test wants to replace the actual repository locations with local locations to avoid poisoning the real server. (Plus, I suppose, the person running the test might not have access to publish anyway.)
In the build itself:
publishing
repositories
maven
name = 'snapshot'
url = "$artifactory_contextUrl/libs-snapshot-local"
credentials
username artifactory_user
password artifactory_password
maven
name = 'release'
url = "$artifactory_contextUrl/libs-release-local"
credentials
username artifactory_user
password artifactory_password
In my test build, I'm trying to override it with this:
publishing
repositories
getByName('snapshot')
url = uri('/tmp/local-repo/snapshots')
getByName('release')
url = uri('/tmp/local-repo/release')
When I try to run the build, I get:
Execution failed for task ':publishMavenJavaPublicationToReleaseRepository'.
> Failed to publish publication 'mavenJava' to repository 'release'
> Authentication scheme 'all'(Authentication) is not supported by protocol 'file'
There are a lot of posts out on the web about this specific error, but it always seems to be people who accidentally put a file path in when they should have put a URI. I'm putting in a URI deliberately, though, so is there a way to get this to work?
I have also tried this:
publishing
repositories
clear()
maven
name = 'snapshot'
url = uri('/tmp/local-repo/snapshots')
maven
name = 'release'
url = uri('/tmp/local-repo/release')
That fails with:
A problem occurred configuring root project 'test-common-plugin1913987501683151177'.
> Exception thrown while executing model rule: PublishingPluginRules#publishing(ExtensionContainer)
> Cannot add task 'publishMavenJavaPublicationToSnapshotRepository' as a task with that name already exists.
I was surprised that deleting all the repositories doesn't also delete all the tasks they own. When I try to programmatically delete the task it's complaining about, Gradle claims that it doesn't exist.
gradle
add a comment |
up vote
1
down vote
favorite
I'm trying to write tests for a build process, so my unit test wants to replace the actual repository locations with local locations to avoid poisoning the real server. (Plus, I suppose, the person running the test might not have access to publish anyway.)
In the build itself:
publishing
repositories
maven
name = 'snapshot'
url = "$artifactory_contextUrl/libs-snapshot-local"
credentials
username artifactory_user
password artifactory_password
maven
name = 'release'
url = "$artifactory_contextUrl/libs-release-local"
credentials
username artifactory_user
password artifactory_password
In my test build, I'm trying to override it with this:
publishing
repositories
getByName('snapshot')
url = uri('/tmp/local-repo/snapshots')
getByName('release')
url = uri('/tmp/local-repo/release')
When I try to run the build, I get:
Execution failed for task ':publishMavenJavaPublicationToReleaseRepository'.
> Failed to publish publication 'mavenJava' to repository 'release'
> Authentication scheme 'all'(Authentication) is not supported by protocol 'file'
There are a lot of posts out on the web about this specific error, but it always seems to be people who accidentally put a file path in when they should have put a URI. I'm putting in a URI deliberately, though, so is there a way to get this to work?
I have also tried this:
publishing
repositories
clear()
maven
name = 'snapshot'
url = uri('/tmp/local-repo/snapshots')
maven
name = 'release'
url = uri('/tmp/local-repo/release')
That fails with:
A problem occurred configuring root project 'test-common-plugin1913987501683151177'.
> Exception thrown while executing model rule: PublishingPluginRules#publishing(ExtensionContainer)
> Cannot add task 'publishMavenJavaPublicationToSnapshotRepository' as a task with that name already exists.
I was surprised that deleting all the repositories doesn't also delete all the tasks they own. When I try to programmatically delete the task it's complaining about, Gradle claims that it doesn't exist.
gradle
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I'm trying to write tests for a build process, so my unit test wants to replace the actual repository locations with local locations to avoid poisoning the real server. (Plus, I suppose, the person running the test might not have access to publish anyway.)
In the build itself:
publishing
repositories
maven
name = 'snapshot'
url = "$artifactory_contextUrl/libs-snapshot-local"
credentials
username artifactory_user
password artifactory_password
maven
name = 'release'
url = "$artifactory_contextUrl/libs-release-local"
credentials
username artifactory_user
password artifactory_password
In my test build, I'm trying to override it with this:
publishing
repositories
getByName('snapshot')
url = uri('/tmp/local-repo/snapshots')
getByName('release')
url = uri('/tmp/local-repo/release')
When I try to run the build, I get:
Execution failed for task ':publishMavenJavaPublicationToReleaseRepository'.
> Failed to publish publication 'mavenJava' to repository 'release'
> Authentication scheme 'all'(Authentication) is not supported by protocol 'file'
There are a lot of posts out on the web about this specific error, but it always seems to be people who accidentally put a file path in when they should have put a URI. I'm putting in a URI deliberately, though, so is there a way to get this to work?
I have also tried this:
publishing
repositories
clear()
maven
name = 'snapshot'
url = uri('/tmp/local-repo/snapshots')
maven
name = 'release'
url = uri('/tmp/local-repo/release')
That fails with:
A problem occurred configuring root project 'test-common-plugin1913987501683151177'.
> Exception thrown while executing model rule: PublishingPluginRules#publishing(ExtensionContainer)
> Cannot add task 'publishMavenJavaPublicationToSnapshotRepository' as a task with that name already exists.
I was surprised that deleting all the repositories doesn't also delete all the tasks they own. When I try to programmatically delete the task it's complaining about, Gradle claims that it doesn't exist.
gradle
I'm trying to write tests for a build process, so my unit test wants to replace the actual repository locations with local locations to avoid poisoning the real server. (Plus, I suppose, the person running the test might not have access to publish anyway.)
In the build itself:
publishing
repositories
maven
name = 'snapshot'
url = "$artifactory_contextUrl/libs-snapshot-local"
credentials
username artifactory_user
password artifactory_password
maven
name = 'release'
url = "$artifactory_contextUrl/libs-release-local"
credentials
username artifactory_user
password artifactory_password
In my test build, I'm trying to override it with this:
publishing
repositories
getByName('snapshot')
url = uri('/tmp/local-repo/snapshots')
getByName('release')
url = uri('/tmp/local-repo/release')
When I try to run the build, I get:
Execution failed for task ':publishMavenJavaPublicationToReleaseRepository'.
> Failed to publish publication 'mavenJava' to repository 'release'
> Authentication scheme 'all'(Authentication) is not supported by protocol 'file'
There are a lot of posts out on the web about this specific error, but it always seems to be people who accidentally put a file path in when they should have put a URI. I'm putting in a URI deliberately, though, so is there a way to get this to work?
I have also tried this:
publishing
repositories
clear()
maven
name = 'snapshot'
url = uri('/tmp/local-repo/snapshots')
maven
name = 'release'
url = uri('/tmp/local-repo/release')
That fails with:
A problem occurred configuring root project 'test-common-plugin1913987501683151177'.
> Exception thrown while executing model rule: PublishingPluginRules#publishing(ExtensionContainer)
> Cannot add task 'publishMavenJavaPublicationToSnapshotRepository' as a task with that name already exists.
I was surprised that deleting all the repositories doesn't also delete all the tasks they own. When I try to programmatically delete the task it's complaining about, Gradle claims that it doesn't exist.
gradle
gradle
edited Nov 8 at 0:21
asked Nov 7 at 22:45
Trejkaz
5,78154289
5,78154289
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
Alright, I ended up having to read the source of Gradle (again), but I found a way to do it. Essentially you can directly set credentials
back to null
, like this:
publishing
repositories
getByName('snapshot')
url = uri('/tmp/local-repo/snapshots')
configuredCredentials = null
getByName('release')
url = uri('/tmp/local-repo/release')
configuredCredentials = null
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53199054%2fhow-do-i-replace-a-maven-repository-with-a-local-directory-after-it-is-defined-i%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
Alright, I ended up having to read the source of Gradle (again), but I found a way to do it. Essentially you can directly set credentials
back to null
, like this:
publishing
repositories
getByName('snapshot')
url = uri('/tmp/local-repo/snapshots')
configuredCredentials = null
getByName('release')
url = uri('/tmp/local-repo/release')
configuredCredentials = null
add a comment |
up vote
1
down vote
accepted
Alright, I ended up having to read the source of Gradle (again), but I found a way to do it. Essentially you can directly set credentials
back to null
, like this:
publishing
repositories
getByName('snapshot')
url = uri('/tmp/local-repo/snapshots')
configuredCredentials = null
getByName('release')
url = uri('/tmp/local-repo/release')
configuredCredentials = null
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
Alright, I ended up having to read the source of Gradle (again), but I found a way to do it. Essentially you can directly set credentials
back to null
, like this:
publishing
repositories
getByName('snapshot')
url = uri('/tmp/local-repo/snapshots')
configuredCredentials = null
getByName('release')
url = uri('/tmp/local-repo/release')
configuredCredentials = null
Alright, I ended up having to read the source of Gradle (again), but I found a way to do it. Essentially you can directly set credentials
back to null
, like this:
publishing
repositories
getByName('snapshot')
url = uri('/tmp/local-repo/snapshots')
configuredCredentials = null
getByName('release')
url = uri('/tmp/local-repo/release')
configuredCredentials = null
answered Nov 12 at 0:18
Trejkaz
5,78154289
5,78154289
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53199054%2fhow-do-i-replace-a-maven-repository-with-a-local-directory-after-it-is-defined-i%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown