Hi. I'm evaluating tools to add dependency management to an existing project
with complex ant scripts.  Ivy is the front-runner, but I've had a few
problems.  I thought I'd start with the install task.

I'm using 2.0.0-beta 2 with ant 1.7.0.  

As a simple test, I have tried several variations on install calls and have
not been satisfied with any of the results.

For example, here's my target with 3 :

    <target name="install" description="--> copy files to the local
repository">
        <ivy:install matcher="glob" from="libraries2" to="libraries3"
overwrite="true" transitive="true" organisation="log4j" module="log4j"
revision="1.2.15" />
        <ivy:install matcher="glob" from="libraries2" to="libraries3"
overwrite="true" transitive="true" organisation="org/apache/ant"
module="ant" revision="*" />
        <ivy:install matcher="glob" from="libraries2" to="libraries3"
overwrite="true" transitive="true" organisation="org/*" module="*"
revision="*" />
    </target>

I'll paste the resolvers config below, but first the results: 
  The log4j jar is successfully retrieved, but not the dependencies from its
POM.  
  The second install task throws an exception.  I first tried setting
"organisation" to "org.apache.ant", but Ivy failed to find it in the iBiblio
path. So I changed it to use slashes instead of dots, and the lib was found,
but with the following results:

[ivy:install] ERROR:    libraries2: bad organisation found in
http://repo1.maven
.org/maven2/org/apache/ant/ant/1.7.0/ant-1.7.0.pom:
expected='org/apache/ant' fo
und='org.apache.ant'
[ivy:install] java.text.ParseException: inconsistent module descriptor file
foun
d in 'http://repo1.maven.org/maven2/org/apache/ant/ant/1.7.0/ant-1.7.0.pom':
bad
 organisation: expected='org/apache/ant' found='org.apache.ant';
[ivy:install]   at
org.apache.ivy.plugins.resolver.BasicResolver.checkDescriptor
Consistency(BasicResolver.java:504)
[ivy:install]   at
org.apache.ivy.plugins.resolver.BasicResolver.getDependency(B
asicResolver.java:236)
[ivy:install]   at
org.apache.ivy.plugins.resolver.IBiblioResolver.getDependency
(IBiblioResolver.java:291)
[ivy:install]   at
org.apache.ivy.core.resolve.IvyNode.loadData(IvyNode.java:225
)

It never got to the third tag. I was hoping to see what it would do and how
long it would take.


So here are the resolvers:

        <chain name="libraries">
                <filesystem name="libraries3">
                        <artifact
pattern="${repository.dir}/[organisation]/[module]/[revision]/[artifact].[ext]"
/>
                        <ivy 
pattern="${repository.dir}/[module]-[revision].xml" />
                </filesystem>
                <ibiblio name="libraries2" m2compatible="true" usepoms="true" 
/> 
    </chain>

I tried both usepoms=true and usepoms=false, with the same results. (Aside:
I will probably change my ivy pattern for libraries3 to match the artifact
pattern, but I would not expect it to have caused these problems.  I did
receive an ivy file for log4j in the filesystem, although it contained no
dependencies.)

So did I miss something here, or is this a big bug? It was my understanding
that m2compatible=true means that the resolver can handle the way Maven
breaks up the org into directories.  

-- 
View this message in context: 
http://www.nabble.com/Issues-with-install-and-iBiblio-tp16586962p16586962.html
Sent from the ivy-user mailing list archive at Nabble.com.

Reply via email to