2016-11-14 119 views
0

我有一個Eclipse代碼項目(純Java和libreries),我想繼續在Eclipse下添加維護。
同時,我想將此項目用作Android Studio項目的一部分。我傾向於不將Eclipse項目「一次性導入」Android Studio(如here以及我看到的許多其他答案中所述),而是將Eclipse項目添加到AS項目中,所以當我更改Eclipse項目,這反映在AS項目中。 (如果有任何幫助,我可以將Eclipse項目遷移到Gradle)。如何在Eclipse和Android Studio之間共享Java源代碼?


如果這不實際,我會去下一個選項:讓AS項目使用Eclipse項目的源文件夾。

可行嗎?


編輯:增加清晰度下面的評論和amswers: 的Java代碼我指的是一個Eclipse項目的一部分。爲了討論的緣故,可以假設它是一個常見的「邏輯部分」,爲此我將在Eclipse上使用桌面GUI和圖形,以及我將在AS上執行的移動GUI和圖形。 Java邏輯部分是一個共同的核心,我構建它。

+1

請注意,現在繼續使用Eclipse ADT進行Android開發可能不是一個好主意,因爲[Google已正式結束其支持](http://android-developers.blogspot.de/2016/11/support -ended換蝕-android.html)。 – sschuberth

+0

選項1:讓Eclipse項目發佈AS項目用作依賴項的JAR。例如,您可以使用本地Maven回購。選項2:將Eclipse項目作爲模塊移動到Android Studio項目中。在這個模塊中添加一個'build.gradle',配置源代碼集和教Gradle(以及Android插件)如何在Eclipse項目結構中查找文件。將該模塊添加到項目根目錄下的settings.gradle中。然後,讓項目中的其他模塊通過'compile project()'引用該模塊。 – CommonsWare

+0

@sschuberth謝謝你的注意事項。我使用Eclipse for Java(only)項目和AS for Android。這就是爲什麼我需要共享選項。 – c0der

回答

1

同時,我想將此項目用作Android Studio項目的一部分。

我假設這個項目產生一個庫;否則,我不確定你會在Android項目中使用它做什麼。然後問題就變成了:這個庫是否被其他項目使用,與您計劃的Android Studio項目分開?

如果答案是「是的,這個庫有很多客戶端」,那麼你應該真的考慮將該庫作爲工件發佈到存儲庫。這可能是您自己開發計算機上的存儲庫,或者是您的團隊的本地服務器上的存儲庫,或者是公共存儲庫上的存儲庫(例如,如果這是一個開源項目)。您的每個客戶可能都需要此庫的不同版本,因此將庫的不同版本作爲版本化工件發佈似乎很有用。

如果答案是「這個Java代碼的JAR可以單獨使用,比如從命令行,但作爲一個庫,唯一的客戶端是Android Studio項目」,那麼你可以設置一個混合Android Studio/Eclipse項目,將Eclipse項目移到Android Studio項目中,以便它可以用作庫模塊。

然後,關鍵是將build.gradle文件添加到Eclipse項目/ AS模塊,該模塊教Gradle/AS如何構建Eclipse項目。例如,如果您有排序文件結構是預AS使用的Android項目,你可能有一個android封這樣的:

android { 
    compileSdkVersion 19 
    buildToolsVersion "21.1.2" 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      aidl.srcDirs = ['src'] 
      renderscript.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
     } 

     // Move the tests to tests/java, tests/res, etc... 
     instrumentTest.setRoot('tests') 

     // Move the build types to build-types/<type> 
     // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... 
     // This moves them out of them default location under src/<type>/... which would 
     // conflict with src/ being used by the main source set. 
     // Adding new build types or product flavors should be accompanied 
     // by a similar customization. 
     debug.setRoot('build-types/debug') 
     release.setRoot('build-types/release') 
    } 
} 

您還需要在此模塊中的項目添加到您的settings.gradle文件根。此時,其他模塊可以使用dependencies中的compile project(':whatever-you-call-it')來拉入您的庫。

這就是說,正如sschuberth所說,Android Studio支持純Java模塊,至少從Android Studio 2.2開始。我會走這條路,因爲兩個IDE將是非常系統密集型的,因爲Eclipse和Android Studio都不具備「苗條」的資格。

+0

感謝您的詳細解答。我會研究它。 – c0der