2012-03-06 38 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é