Uploaded image for project: 'Ivy'
  1. Ivy
  2. IVY-744

Maven test scope not mapped to test conf

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • 2.0.0-beta-2
    • 2.0.0-beta-2
    • None
    • None

    Description

      The pom to ivy file translator incorrectly assigns the test scope of a dependency to the runtime conf in the ivy file.

      Consider the ivy beta-1 pom from http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/ivy/ivy/2.0.0-beta1/ivy-2.0.0-beta1.pom

      the current parsed Ivy file is:

      <?xml version="1.0" encoding="UTF-8"?>
      <ivy-module version="1.0" xmlns:m="http://ant.apache.org/ivy/maven">
      	<info organisation="org.apache.ivy"
      		module="ivy"
      		revision="2.0.0-beta1"
      		status="integration"
      		publication="20071213094244"
      	/>
      	<configurations>
      		<conf name="default" visibility="public" description="runtime dependencies and master artifact can be used with this conf" extends="runtime,master"/>
      		<conf name="master" visibility="public" description="contains only the artifact published by this module itself, with no transitive dependencies"/>
      		<conf name="compile" visibility="public" description="this is the default scope, used if none is specified. Compile dependencies are available in all classpaths."/>
      		<conf name="provided" visibility="public" description="this is much like compile, but indicates you expect the JDK or a container to provide it. It is only available on the compilation classpath, and is not transitive."/>
      		<conf name="runtime" visibility="public" description="this scope indicates that the dependency is not required for compilation, but is for execution. It is in the runtime and test classpaths, but not the compile classpath." extends="compile"/>
      		<conf name="test" visibility="private" description="this scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases." extends="runtime"/>
      		<conf name="system" visibility="public" description="this scope is similar to provided except that you have to provide the JAR which contains it explicitly. The artifact is always available and is not looked up in a repository."/>
      		<conf name="optional" visibility="public" description="contains all optional dependencies"/>
      	</configurations>
      	<publications>
      		<artifact name="ivy" type="jar" ext="jar" conf="master"/>
      	</publications>
      	<dependencies>
      		<dependency org="ant" name="ant" rev="1.6" force="true" conf="optional->compile(*),master(*)"/>
      		<dependency org="commons-httpclient" name="commons-httpclient" rev="3.0" force="true" conf="optional->compile(*),master(*)"/>
      		<dependency org="commons-cli" name="commons-cli" rev="1.0" force="true" conf="optional->compile(*),master(*)"/>
      		<dependency org="oro" name="oro" rev="2.0.8" force="true" conf="optional->compile(*),master(*)"/>
      		<dependency org="commons-vfs" name="commons-vfs" rev="1.0" force="true" conf="optional->compile(*),master(*)"/>
      		<dependency org="jsch" name="jsch" rev="0.1.25" force="true" conf="optional->compile(*),master(*)"/>
      		<dependency org="junit" name="junit" rev="3.8.2" force="true" conf="runtime->compile(*),runtime(*),master(*)"/>
      		<dependency org="commons-lang" name="commons-lang" rev="2.3" force="true" conf="runtime->compile(*),runtime(*),master(*)"/>
      	</dependencies>
      </ivy-module>
      

      note that junit and commons-lang have runtime-> when they should have test->

      patch forthcoming...

      Attachments

        Activity

          People

            gscokart Scokart Gilles
            shemnon Daniel Ferrin
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: