2017-09-13 116 views
0

我在同一個SVN中有兩個項目,即LOG和MAIN。從SVN Gradle編譯項目

MAIN使用LOG中的方法,因此我想將LOG添加爲依賴項。

此前我將LOG複製到本地目錄,並使用下面的gradle設置來編譯LOG。

設置:

include "LOG" 
project(":LOG").projectDir = file("../LOG") 

既然都是我們想直接從SVN生成日誌不同的項目。

我用下面的build.gradle,但它顯示下面的錯誤。

的build.gradle:

repositories { 

    ivy { 
     url 'http://13.126.60.33/datastudio/DataStudio_Java/DataStudio_Java_Logger/Branch/Development/DataStudio_Java_Logger' 
     credentials { 
      username 'mob140003207' 
      password 'VIGkalai1' 
     } 
    } 
} 

dependencies { 

    compile project("DataStudio_Java_Logger") 
} 

錯誤:

Caused by: org.gradle.internal.component.model.ConfigurationNotFoundException: Project : declares a dependency from configuration 'compile' to configuration 'default' which is not declared in the descriptor for project :DataStudio_Java_Logger. 

有沒有辦法做到這一點還是我在做什麼錯。

+0

是SVN中的源代碼嗎?還是罐子? '存儲庫{...}'部分用於jar,而不是源代碼。 –

+0

@ lance-java源代碼在SVN中,而不是jar。我需要使用源代碼 – The6thSense

回答

1

正常的做法是CI服務器(例如jenkins/travis)每次修改LOG.jar並將其上傳到存儲庫(例如nexus/artifactory)時構建LOG項目。然後,MAIN項目將配置存儲庫(nexus/artifactory)並從那裏下載jar文件。所以MAIN項目根本不知道SVN中的LOG源碼。

如果你真的想在主項目中獲得SVN的源代碼(不推薦!!!)並編譯它們,那麼你需要在LOG子項目(主項目)中創建一個svnDownload任務。 javaCompile任務(LOG子項目)將取決於svnDownload任務。

+0

因爲他們都在同一個SVN是沒有辦法編譯他們,而不是使用第二步你siad – The6thSense

+0

我看到一個更接近這個[問題]的回答(https:// stackoverflow.com/questions/10856113/how-to-deal-with-gradle-and-multi-project-configuration)。我正在嘗試使用第三種方法。 – The6thSense

+0

好的......所以把LOG和MAIN放在同一個SVN倉庫中,然後作爲根下的兄弟倉庫 –

相關問題