Skip to content

Use CloudRepo from Eclipse

View as Markdown

Eclipse builds Maven projects with m2e and Gradle projects with Buildship, and CloudRepo is a Maven repository, so there is no CloudRepo setting in Eclipse. Set up the build tool, then check that Eclipse reads that setup.

  • A Maven repository. If you have none, create one.
  • A repository token that reaches it. See Repository tokens. Your username is the email address of the account that created the token, and your password is the token.
  • Your repository’s URL, https://<organization>.mycloudrepo.io/repositories/<repository>.

1. Put the credential in ~/.m2/settings.xml. The <id> is a name you choose, and the repository in your pom.xml must use the same one. ${env.CLOUDREPO_TOKEN} reads the token from an environment variable, so the file holds no token.

~/.m2/settings.xml
<settings>
<servers>
<server>
<id>cloudrepo</id>
<username>you@example.com</username>
<password>${env.CLOUDREPO_TOKEN}</password>
</server>
</servers>
</settings>

2. Name the repository in your pom.xml, to resolve dependencies from it and to publish to it. Pages for both: Pull Maven artifacts and Publish Maven artifacts.

3. Check which settings file m2e reads. m2e has a Maven preference page for the user settings file, in Eclipse’s preferences. Check that it names the settings.xml above, and restart Eclipse if a build still ignores the file.

4. Give Eclipse the token. ${env.CLOUDREPO_TOKEN} is read from the environment Maven runs in. A program sees the environment variables of the process that started it, so an Eclipse started from a launcher does not see a variable you exported in a terminal. Start Eclipse from the shell that exports the variable.

Run a build that needs CloudRepo from Eclipse: resolve a dependency from your repository, or run the deploy (Maven) or publish (Gradle) goal to publish. If the same build works in a terminal and fails in Eclipse, Eclipse is not reading the file or the variable you set up. If it fails with a status, the cause is the one on the build tool’s own page, and it is the same in Eclipse: see “When Maven answers 401, 403 or 404” on Pull Maven artifacts, the matching list on Pull Gradle dependencies, and the list at the end of each publish page.

CloudRepo serves *.mycloudrepo.io with a publicly trusted certificate, so a TLS error means something on your network is replacing it, such as a corporate proxy that terminates TLS: the JDK that runs your build must trust that proxy’s certificate authority.

More: Repository tokens, for every client’s credential; Proxy repositories, to resolve Maven Central through CloudRepo; and the m2e documentation.