5
votes

I am setting up an ant build system on a project with dependency resolution being managed by ivy. I have it up and running with the file system being used for the local and shared repository currently. My ultimate goal would be that when developers are fixing bugs or creating new functionality, they would only be able to put artifacts into their local repository. When they belive their code is ready to be used by the rest of the team, it would be promoted to the proper branch in SVN and the group in charge of doing official builds would compile and publish the new artifacts.

So I guess my questions are how can you control who can publish to a repository? Does ivy just rely on filesystem permissions?

Also, I would eventually like to make my shared repository available via http. I think I could point apache to the file system repository directories for retrieving artifacts, but how do you setup publishing to an http repository?

3

3 Answers

4
votes

I would suggest that you setup a repository manager to manage your project's build artifacts.

The best choices are one of the following:

Publishing to a Maven repository means that your artifacts can be consumed by projects using other build technologies. All modern build systems support Maven (Including ivy, see the ibiblio resolver).

2
votes

You could specify three resolvers in your ivy settings file. First would be a chain resolver which include remote and local ivy repositories. Second would be a local resolver for local ivy repository. Third a resolver to remote ivy repository only.

Every developer retrieves artifacts using first chain resolver.

Usual developer publish artifacts using second local resolver.

Your special team could use third remote resolver to publish in remoter ivy repository. To protect remote repository from usual developers place it on (S)FTP server with write protection by password.

The only problem in this case is how to set versions on artifacts so that artifacts published in remote repository in some cases override locally published in some not.

Our team used such scheme few years ago. But now we use only local ivy repositories and CI server to build and run tests from various branches. We came up to this after switching to git.

0
votes

for existing ivy repo easy to setup this: rest-ivy