2012-03-06 37 views
1

我试图编译和打包我的java应用程序,但是当我尝试指定我的本地存储库时,我有我的罐子将用作依赖关系时遇到问题。我在'/ home/test/lib'中存储了我的应用程序所需的所有罐子。我有我的文件的build.gradle如下:关于本地代码库(gradle)中的依赖项的困惑

apply plugin:'application' 
apply plugin:'java' 
apply plugin:'idea' 

    def repositoryPath = '/home/test/lib' 

    repositories { 
     repositoryPath 
    } 



dependencies { 
      "org.springframework:spring-orm:3.0.2.RELEASE" 
      "org.springframework:spring-context-support:3.0.2.RELEASE" 
      'commons-dbcp:commons-dbcp:1.4' 
      'org.apache.ibatis:ibatis-sqlmap:2.3.4.726' 
      'commons-dbutils:commons-dbutils:1.3' 
      'joda-time:joda-time:1.6' 
      'commons-lang:commons-lang:2.5' 
      'com.google.collections:google-collections:1.0' 
} 

jar { 
    baseName = 'testJar' 
} 

mainClassName = "com.some.test.testRunner" 

当我运行gradle这个身材,我得到“包*不存在”的错误。

我的假设是,gradle没有在我的lib文件夹中找到必需的外部罐子。有人可以指出我在这里可能做错了什么。

谢谢

回答

6

关于您的构建文件的一些注释。我假设你在'/ home/test/lib'中有一个包含你的第三方库的平面目录?如果这是你可以使用一个flatDir库的情况下,即宣告与语法如下:

def repositoryPath = '/home/test/lib' 

repositories { 
    flatDir { 
     dirs repositoryPath 
    } 
} 

如果/家/测试/ lib目录是常春藤库,你可以这样做:

repositories { 
    ivy { 
     url repositoryPath 
    } 
} 

这在Gradle user guide中有详细解释。

在你的“依赖”节你错过了申报你的依赖关系的范围(编译,运行时间等):

dependencies { 
    compile "org.springframework:spring-orm:3.0.2.RELEASE" 
    compile "org.springframework:spring-context-support:3.0.2.RELEASE" 
    compile 'commons-dbcp:commons-dbcp:1.4' 
    compile 'org.apache.ibatis:ibatis-sqlmap:2.3.4.726' 
    compile 'commons-dbutils:commons-dbutils:1.3' 
    compile 'joda-time:joda-time:1.6' 
    compile 'commons-lang:commons-lang:2.5' 
    compile 'com.google.collections:google-collections:1.0' 
} 

如果使用flatdir库,你的依赖定义的组经常被忽略:

dependencies { 
    compile ":spring-orm:3.0.2.RELEASE" 
    ... 
} 

看一看的gradle这个用户指南,了解有关依赖与gradle这个处理的详细信息:http://gradle.org/docs/current/userguide/userguide_single.html#artifact_dependencies_tutorial

问候, René