I have local filesystem Ivy repository and need to install (publish) all artifacts into remote Maven repository like Nexus or Artifactory. I wrote the ant script for ivy install task along the following lines:
<ivy:install
organisation="apache"
module="commons-lang"
revision="2.0"
from="ivyfilesys" to="remotemaven"/>
Now, there are multiple configurations in my local ivy repository (test
, compile
), these are declared in ivy.xml files that are present there. The local repository consists of two folders per artifact, jars and ivys. Jars folder contains jars and ivys folder contains ivy.xml with configurations declared inside. Also SHA and MD5 checksum files are present but nothing else.
I expected that Ivy will tell Maven repository about the available configurations but seems it does not. After I switch into the newly created repository for resolution, Ivy cannot find artifacts it has just installed there itself, claiming that test
and compile
configurations are missing.
Local repository is configured as file-based and artifacts can be resolved from there no problem. Remote repository is ibiblio, m2compatible:
<ibiblio name="remotemaven" m2compatible="true"
root="http://my.server:8081/"
pattern="[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
/>
Root is configured to our server. Root and authentication are probably configured correctly as the installed artifacts appear on the server.
Is it a way to make Ivy to respect its own ivy.xml and install into Nexus or Artifactory repository with configurations, so it could later resolve them?
- Maybe ivy:install task needs more options?
- Maybe some configuration files missing or incomplete?