I myself have this config : I have folder-based repositories (hand managed, not included in archiva as managed repo) for - private corporate artifacts (release + snapshots) - restricted libs (sun jar, oracle driver...) - free libs not available on repo1 OR -soures.jar for existing libs (spring-xx)
I have configured an archiva managed repository that proxies - my 3 private repos - repo1.maven.org - snapshots from apache & codehaus - java.net repo The developpers configure maven2 to use archiva as <mirrorOf>*</mirrorOf> If some artifact is missing, I can add the expected repo as proxied or copy the expected artifact in my "free libs" repo. This config has an issue : I' writing a corporate POM and deployed a snapshot. For any project to use it as parent I have to add a repository entry with snapshot enabled, pointing to my "corporate artifacts" repo. As mirrorOf redirects to archiva, this also enables snapshots from apache/codehaus. This may introduce unexpected snapshots pluginsin the build and make it unreproductible. I encourage users to force the plugin <version> (see recent thread on list) to avoid this issue. Nico. 2007/4/19, Arnaud HERITIER <[EMAIL PROTECTED]>:
Hi everybody, I would like to have your feedback about the usage of maven (1 & 2) with archiva in a corporate environment. Up until now in a corporate environment I was using by default 5 managed repositories : - corporate-releases : for inhouse releases filled by teams (and by continuum 1.1 shortly). - corporate-snapshots : for inhouse snapshots filled by the CI. - proxy-releases : for the central repository and few others not synchronized. - proxy-snapshots : for snapshots coming from apache, codehaus and more. - 3rdparties : for 3rd party editors which don't publish their libraries. I think it is a good separation for repositories because they don't have the same size (releases vs snapshots) and the same backup policy (corporate vs proxy). The problem with this approach is that we have to deploy a "complex" settings.xml for developers. We have to define : - several proxies using proxy-releases or proxy-snapshots - 5 repositories - 5 pluginRepositories Another problem is that when maven (1 or 2) tries to download a missing dependency it will send several requests to archiva and it can be slow if the network isn't enough rapid. This problem occurs often when you have to update your IDE settings. Maven tries to download X times the javadocs and sources (but it's useful to have them). I tried to find a workaroung for that by replacing both proxy repositories by only one (proxy-all) which proxies at the same time my internal repositories and the releases and snapshots outside of the company. It's working find and I have better performances because maven send only one request to archiva. My settings are very reduced because I just have to define one proxy (with *), one repository and one pluginRepository. The counterpart is that now maven 2 updates all its plugins with SNAPSHOTs because in my proxy-all repo, I have metadata updated from snapshots repositories. Thus I can't keep these settings without to have a unstable environment. What do you think ? How are you doing ? Arnaud