[GRADLE-357] Replace unmanaged classpath with new dependency type Created: 10/Jan/09  Updated: 04/Jan/13  Resolved: 17/Jul/09

Status: Resolved
Project: Gradle
Affects Version/s: None
Fix Version/s: 0.7

Type: Improvement
Reporter: Hans Dockter Assignee: Adam Murdoch
Resolution: Fixed Votes: 0


 Description   

The compile and test task have an unmanaged classpath property. This is not a very nice solution for the underlying problem:

  • It is bound to those tasks
  • Unmanaged classpaths can't be shared in multi-project builds
  • It is uninutitive and does not fit into our usual way of dependeny management

A much nicer way of solving the problem would be to create a new dependency type, let's call it file.

It could be used like:

dependencies {
   compile "junit:junit:4.4", files('src/main/java', 'lib/somedep.jar', 'Users/joe/libs/whatever.jar')
}

To enable this, we would create our Ivy resolver for file depenencies (like we do for client modules). Such dependencies are shared between sub projects.



 Comments   
Comment by Jon Cox [ 23/Jan/09 ]

Somewhat off-topic perhaps, but this has been confusing me for a while now:
why are client modules called "client" modules" ?

At first glance, the word "client" introduces a sort of client/server perspective, leaving the newcomer
wondering which side of the stick they're on for a moment (like when you're talking about a X server).
Doesn't the context already imply we're talking about external dependencies? I think it does, but
I'm not 100% clear on the whole thing yet. From my current understanding, it seem more
self-consistent to have the grammar look more like this:

prosed syntax
addDependencies( confs: ['compile'], id: "....")
{
    addDependency("....")
    addDependencies("....")
    {
        addDependency("....")
        addDependency("....")
    }
}

Please help clarify this a bit, if possible.

Comment by Jon Cox [ 23/Jan/09 ]

The intention of the proposed syntax is to replace the syntax presented in "14.2.3 Client Module Dependencies"
(page 40 of the User's Manual, version 0.5).

Comment by Adam Murdoch [ 23/Jan/09 ]

This issue refers to the Compile task's unmanagedClasspath property, rather than the client modules.

Generated at Wed Jun 30 11:28:05 CDT 2021 using Jira 8.4.2#804003-sha1:d21414fc212e3af190e92c2d2ac41299b89402cf.