我正在使用IntelliJ,添加了IvyIdea插件,现在尝试使用IvyIdea解决项目(Ant构建)的依赖关系,但收到有关“UNRESOLVED DEPENDENCIES”的错误。我已经下载并配置了Ivy和Ant。
我可以使用Ant命令行解析和构建项目,但不能通过IDE解析和构建项目。我可以看到〜.ivy2 \ cache文件夹已经解决了它所抱怨的所有依赖项。
我为所有模块配置了“Facets”,以映射到正确的常春藤设置和构建属性文件。有谁知道我还能尝试其他什么吗?
我现在在日志中发现了一件事,
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 :(得分:1)
我还尝试使用IntelliJ与Pentaho合作。这是一项非常重要的工作,因为很多代码都是使用Apache Ivy和Ant设置的,其余的都是使用Maven完成的。
对我有用的是以下内容..
确保正常构建可以从命令行运行。
在IntelliJ
现在打开IntelliJ,只需打开pentaho-kettle目录而不导入任何内容。
选择文件 - >新 - >从现有来源的模块,然后选择"组装" 。目录
让它导入源,但取消选择它找到的任何库。它还应该自动找到ivy.xml并添加IvyIdea方面。
导入后点击" assembly"在项目浏览器中,然后按F4转到模块设置。
点击"来源"模块的选项卡,并检查是否有名为" res"," packages-res"或其他任何非标准的意味着资源 - EXCEPT build-res(忽略那些)。单击这些目录,然后单击"标记为 - 资源"在树上方。
点击" IvyIdea"模块的facet,并配置以下内容:
选择"使用模块特定设置" (检查)。然后选择"使用您自己的",然后从"程序集"中选择ivysettings.xml文件。 。目录
点击"属性"选项卡,然后"添加文件",并从程序集目录中选择build.properties文件。
对其他主要模块重复此过程,例如核心和引擎以及可以找到ivy.xml文件的所有其他模块。这是很多工作,因为有很多模块。您可以使用以下命令(linux)查找所有模块:
find . -name 'ivy.xml'
完成后,让IvyIdea通过单击项目资源管理器中的pentaho-kettle(主目录)解析所有依赖项,然后右键单击 - > IvyIdea - >解决所有依赖项。确保你准备好大量的咖啡和午餐,因为这需要永远。
在插件下找到" pom.xml"归档那里。在IntelliJ的右侧打开" Maven Projects"查看(或使用视图 - >工具Windows - > Maven项目)。
在该Maven视图中,单击绿色+以添加pom,然后导航到plugins / pom.xml。这使IntelliJ可以导入其余的插件。这需要一段时间。
现在,单击Project Explorer中的UI模块,然后按F4。单击"依赖关系"选项卡,然后绿色" +"在右侧选择"模块依赖"。
在下面的列表中:选择所有内容,然后按确定。这使得ui模块有一个包含插件的类路径,这样勺子就会在启动时找到东西。
此后IntelliJ应该能够构建添加的模块:按ctrl + f9进行检查。
要让这个东西运行,还有另一种乐趣。我正在运行Linux,因此这里的说明适用于此。 YMMV在其他操作系统或Windows上。
在项目资源管理器中,找到" Spoon" UI项目中的类(或按CTRL + N然后按Spoon)。
找到主要方法,然后按前面边缘的绿色按钮。这将尝试运行main,并且会死得很厉害 - 但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中窃取的,这个脚本通常会启动Spoon。如果您仍有问题,可能需要检查该文件。
将工作目录设置为pentaho-kettle / assembly / package-res
这应该可以运行Spoon。您可能会在控制台中收到相当多的消息,并且Spoon可能需要一分多钟才能启动(在我非常快的机器上),所以请耐心等待;)
祝你好运;)