IvyIdea插件 - 不解决依赖关系

问题描述:

我正在使用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 

我已经确定我使用正确的常春藤设置和构建性能,但仍然它给了同样的错误。

我也尝试使用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可能需要一分多钟才能开始(在我的相当快的机器上),所以请耐心等待)

祝你好运;)