Configuring HTTP Basic Auth secured repository is a little bit hard. Just remember the following things:
- For simplicity we use the same login value for everyone - myMavenRepo.
- There is difference between repository credentials and service credentials. Don't mess them up.
Help / Configuring Gradle build file for HTTP Basic Auth secured repository
Security
Direct usage of password in build.gradle
file to your repository is not good a idea.
Instead we suggest you to store this information in ~/.gradle/gradle.properties
file:
myMavenRepoReadPassword=${yourHttpAuthReadPassword} myMavenRepoWritePassword=${yourHttpAuthWritePassword}
Replace ${yourHttpAuthReadPassword}
, ${yourHttpAuthWritePassword}
with password to your read/write repository.
Get more info: official documentation, stackoverflow question
Reading
To read data from your repository you should use read URL and password to your read repository.
Let's add them to /path/to/project/build.gradle
file:
repositories { maven { url '${myMavenRepoReadUrl}' credentials { username 'myMavenRepo' password myMavenRepoReadPassword } } }
Replace ${myMavenRepoReadUrl}
with read URL to your repository.
Publishing artifacts
To publish data to repository you should use write URL and password to your write repository.
Let's add them to /path/to/project/build.gradle
file:
apply plugin: 'maven-publish' group = 'com.my-project' version = '0.1-SNAPSHOT' publishing { repositories { maven { url '${myMavenRepoWriteUrl}' credentials { username 'myMavenRepo' password myMavenRepoWritePassword } } } publications { maven(MavenPublication) { from components.java } } }
Replace ${myMavenRepoWriteUrl}
with write URL to your repository and
com.my-project
, 0.1-SNAPSHOT
with an appropriate data.
To upload artifacts use gradle publish
command.
You can also use maven
plugin to upload your data
Get more info: maven-publish plugin doc, maven plugin doc, blog post