3

According to this page, I need to declare an <ivy:settings> task inside my Ant build that helps Ant locate where the ivysettings.xml file is located. This setting file is where the definitions for all of my repositories can be found, as well as additional info.

What's confusing me is this: according to that page (link provided above), the following attributes are possible for the <ivy:settings> task:

  • id
  • file
  • url
  • host
  • realm
  • username
  • passwd

The description for url is:

url of the settings file to use

Implying that the ivysettings.xml file can actually be stored on a different machine, perhaps even inside the repository itself?!?.

But then the descriptions for the last for attributes (host, realm, username, passwd) are all of the variety:

http authentication (host|realm|username|passwd)

To me, these descriptions, combined with the one for url, indicate that the host, realm, username and passwd attributes are connection credentials for locating and retreiving the ivysettings.xml file; and that they are not connection credentials for connecting to a remote repository.

This is further evidenced by the fact that Ivy allows you to define multiple repositories inside ivysettings.xml, including multiple url-resolvers, which could be different repositories located on different servers with different access credentials. Seeing that the <ivy:settings> task only allows you to specify one set of credentials with these attributes, again it seems to imply that these attributes are merely for finding and pulling down the ivysettings.xml file, and not for communicating with 1+ repos.

So, I ask:

  • Are these 4 attributes for connecting to a url where ivysettings.xml lives, or are they for connecting to a remote repository that is defined inside ivysettings.xml?
  • If the answer to the question above is that they are credentials for locating ivysettings.xml at a remote url, then where do I place the credentials for communicating with the web server where my actual repo lives (as the server where ivysettings.xml lives and the server where my repo lives may be two different machines)?
  • Is my suspicion that you can store ivysettings.xml at a remote url (remote server) correct? If so, how do I tell Ivy to look at Server A with Loging Credentials A to find my ivysettings.xml file, but to find my repository at Server B with Login Credentials B?

Please note, some of you may also find this question and think that my question here is a duplicate of it. I argue that the referenced question above is simply the question "where do I put the ivysettings.xml file?" My question is kind of similar, however, at its core, its really about understanding the intention of the <ivy:settings> attributes, and what they're trying to find: the settings file, or the repo(s) defined inside the settings file. Thanks in advance.

Community
  • 1
  • 1
IAmYourFaja
  • 55,468
  • 181
  • 466
  • 756

1 Answers1

4

The optional attributes on the ivy settings task are used when retrieving the settings file from a remote server. Within that settings file you can use credentials tags to specify authentication credentials for remote repositories.

Examples:

Community
  • 1
  • 1
Mark O'Connor
  • 76,015
  • 10
  • 139
  • 185