[
https://issues.apache.org/jira/browse/IVY-744?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Danno Ferrin updated IVY-744:
-----------------------------
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:
{code}
<?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>
{code}
note that junit and commons-lang have runtime-> when they should have test->
patch forthcoming...
was:
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...
Summary: Maven test scope not mapped to test conf (was: Maven test
scope not reflecte into test conf)
> Maven test scope not mapped to test conf
> ----------------------------------------
>
> Key: IVY-744
> URL: https://issues.apache.org/jira/browse/IVY-744
> Project: Ivy
> Issue Type: Bug
> Affects Versions: 2.0.0-beta-2
> Reporter: Danno Ferrin
> Priority: Blocker
> Attachments: IVY-744_-_test_scope_mapped_to_wrong_conf.patch
>
>
> 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:
> {code}
> <?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>
> {code}
> note that junit and commons-lang have runtime-> when they should have test->
> patch forthcoming...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.