2016-12-05 300 views
0

我正在使用IntelliJ,添加了IvyIdea插件,現在嘗試使用IvyIdea解決項目(Ant構建)的依賴關係,但獲取有關「未解決的依賴關係」的錯誤。我已經下載並配置了Ivy和Ant。IvyIdea插件 - 不解決依賴關係

我可以使用Ant命令行解析和構建項目,但不能通過IDE。我可以看到〜.ivy2 \ cache文件夾已經解決了它所抱怨的所有依賴關係。

我已將所有模塊的「構面」配置爲映射到正確的常春藤設置並構建屬性文件。有誰知道我還有什麼可以嘗試的嗎?

enter image description here

一兩件事,我現在在日誌中發現,

loadData of pentaho-kettle#kettle-core;7.1-SNAPSHOT of rootConf=default 
    using default to resolve pentaho-kettle#kettle-core;7.1-SNAPSHOT 
default: Checking cache for: dependency: pentaho-kettle#kettle-core;7.1-SNAPSHOT {default-ext=[default]} 
don't use cache for pentaho-kettle#kettle-core;7.1-SNAPSHOT: changing=true 
don't use cache for pentaho-kettle#kettle-core;7.1-SNAPSHOT: changing=true 
    local (useCacheOnly) : no ivy file found for pentaho-kettle#kettle-core;7.1-SNAPSHOT 
main: Checking cache for: dependency: pentaho-kettle#kettle-core;7.1-SNAPSHOT {default-ext=[default]} 
don't use cache for pentaho-kettle#kettle-core;7.1-SNAPSHOT: changing=true 
don't use cache for pentaho-kettle#kettle-core;7.1-SNAPSHOT: changing=true 
    shared (useCacheOnly) : no ivy file found for pentaho-kettle#kettle-core;7.1-SNAPSHOT 
don't use cache for pentaho-kettle#kettle-core;7.1-SNAPSHOT: changing=true 
    public (useCacheOnly) : no ivy file found for pentaho-kettle#kettle-core;7.1-SNAPSHOT 
WARN: module not found: pentaho-kettle#kettle-core;7.1-SNAPSHOT 
WARN: ==== local: tried 
WARN: ==== shared: tried 
WARN: ==== public: tried 

我已經確定我使用正確的常春藤設置和構建性能,但仍然它給了同樣的錯誤。

回答

0

我也嘗試使用IntelliJ與Pentaho一起工作。這是一項相當的工作,因爲很多代碼都是使用Apache Ivy和Ant來設置的,其餘的都是使用Maven完成的。

什麼工作對我來說是以下..

中的IntelliJ

編譯
  • 確保正常的構建在命令行工作。

  • 中的IntelliJ

  • 現在打開的IntelliJ安裝最新IvyIdea插件,並且只要打開Pentaho的水壺目錄不導入任何東西。

  • 選擇File - > New - > Module from existing sources,然後選擇「assembly」目錄。

  • 讓它導入源,但取消選擇它找到的任何庫。它還應該自動查找ivy.xml並添加IvyIdea構面。

  • 導入後,在項目瀏覽器中點擊「程序集」,然後按F4進入模塊設置。

  • 單擊該模塊的「Sources」選項卡,並檢查是否有名爲「res」,「packages-res」或其他任何非標準的資源目錄 - 除build-res(忽略這些目錄)。點擊這些目錄,然後點擊樹上方的「標記爲 - 資源」。

  • 點擊「IvyIdea」小的模塊,並配置如下:

    • 選擇「使用特定模塊設置」(讓它選中)。然後選擇「Use your own」,然後從「程序集」目錄中選擇ivysettings.xml文件。

    • 單擊「屬性」選項卡,然後單擊「添加文件」,然後從程序集目錄中選擇build.properties文件。

  • 重複此過程,其他主要的模塊,例如核心和引擎和其他一切,你可以找到一個ivy.xml文件。這是很多工作,因爲有很多模塊。您可以使用下面的命令(Linux)的找到所有模塊:

    find . -name 'ivy.xml' 
    
  • 做一次讓IvyIdea解決通過單擊項目資源管理器Pentaho的水壺(主目錄)所有的依賴關係,然後單擊鼠標右鍵 - > IvyIdea - >解決所有的依賴關係。確保你有很多的咖啡和午餐準備好了,因爲它會一直持續下去。

  • 根據插件在那裏找到「pom.xml」文件。在IntelliJ的右側打開「Maven Projects」視圖(或使用視圖 - >工具窗口 - > Maven項目)。

  • 在該Maven視圖中,單擊綠色+添加一個pom,然後導航到plugins/pom.xml。這可以讓IntelliJ導入其餘的插件。這又需要一段時間。

  • 現在,單擊Project Explorer中的UI模塊,然後按F4鍵。點擊「依賴項」選項卡,然後點擊右側的綠色「+」並選擇「模塊依賴項」。

  • 在下面的列表中:選擇所有內容,然後按確定。這使得ui模塊有一個包含插件的類路徑,這樣勺子就可以在啓動時找到它們。

之後這個IntelliJ應該能夠建立模塊添加:按ctrl + f9檢查。

運行編譯結果

爲了讓這個東西運行是又一袋樂趣。我正在運行Linux,因此這裏的說明適用於此。 YMMV在其他操作系統或Windows上。

  • 在項目瀏覽器中,在UI項目中找到「Spoon」類(或按Ctrl + N,然後按下Spoon)。

  • 找到主要方法,並按下前面的空白處的綠色按鈕。這將試圖運行主要,並會死亡可怕 - 但IntelliJ現在已經做了一個運行配置;)

  • 打開運行配置(運行 - >編輯配置)。

  • 在「VM選項」添加以下(點擊小框右側得到一個大的輸入字段):

    -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2 
    -Djava.library.path=./../libswt/linux/x86_64/ 
    -DKETTLE_HOME= 
    -DKETTLE_REPOSITORY= 
    -DKETTLE_USER= 
    -DKETTLE_PASSWORD= 
    -DKETTLE_PLUGIN_PACKAGES= 
    -DKETTLE_LOG_SIZE_LIMIT= 
    -DKETTLE_JNDI_ROOT= 
    -DKETTLE_PLUGIN_CLASSES=org.pentaho.di.trans.steps.gpload.GPLoadMeta,org.pentaho.di.core.database.PALODatabaseMeta,org.pentaho.di.trans.steps.palo.cellinput.PaloCellInputMeta,org.pentaho.di.trans.steps.palo.celloutput.PaloCellOutputMeta,org.pentaho.di.trans.steps.palo.diminput.PaloDimInputMeta,org.pentaho.di.trans.steps.palo.dimoutput.PaloDimOutputMeta,org.pentaho.di.trans.steps.hl7input.HL7InputMeta,org.pentaho.di.job.entries.hl7mllpack.HL7MLLPAcknowledge,org.pentaho.di.job.entries.hl7mllpin.HL7MLLPInput,org.pentaho.di.starmodeler.StarModelerSpoonPlugin,org.pentaho.di.core.market.Market,org.pentaho.di.job.entries.palo.JobEntryCubeCreate.PaloCubeCreate,org.pentaho.di.job.entries.palo.JobEntryCubeDelete.PaloCubeDelete,org.pentaho.di.core.database.OpenERPDatabaseMeta,org.pentaho.di.trans.steps.openerp.objectinput.OpenERPObjectInputMeta,org.pentaho.di.trans.steps.openerp.objectoutput.OpenERPObjectOutputMeta,org.pentaho.di.trans.steps.openerp.objectdelete.OpenERPObjectDeleteMeta 
    
  • 這些參數是從spoon.sh被盜,腳本,通常開始勺子。如果仍有問題,您可能需要檢查該文件。

  • 工作目錄設置到Pentaho的水壺/組裝/包清晰度

  • 添加使用按鈕下面的環境變量後,「環境變量:Environment variables to set for Linux

這應該有可能你可能會在控制檯中得到相當多的消息,並且Spoon可能需要一分多鐘才能開始(在我的相當快的機器上),所以請耐心等待)

祝你好運;)