Ram*_*man 4 java ant intellij-idea ivy
我正在使用 IntelliJ,添加了 IvyIdea 插件,现在尝试使用 IvyIdea 解决项目(Ant 构建)的依赖关系,但收到有关“UNRESOLVED DEPENDENCIES”的错误。我已经下载并配置了 Ivy 和 Ant。
我可以使用 Ant 命令行解析和构建项目,但不能通过 IDE。我可以看到 ~.ivy2\cache 文件夹已解决了它所抱怨的所有依赖项。
我已经为所有模块配置了“Facets”,以映射到正确的 Ivy 设置和构建属性文件。有谁知道我还有什么可以尝试的吗?
我现在在日志中发现一件事,
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
Run Code Online (Sandbox Code Playgroud)
我已确保使用正确的 Ivy 设置和构建属性,但仍然给出相同的错误。
我还尝试使用 IntelliJ 与 Pentaho 一起工作。这是一项相当艰巨的工作,因为很多代码是使用 Apache Ivy 和 Ant 设置的,其余的则使用 Maven 完成。
对我有用的是以下..
确保正常构建可以从命令行进行。
在 IntelliJ 中安装最新的 IvyIdea 插件
现在打开 IntelliJ,只需打开 pentaho-kettle 目录,无需导入任何内容。
从现有源中选择“文件”->“新建”->“模块”,然后选择“程序集”目录。
让它导入源,但取消选择它找到的任何库。它还应该自动查找 ivy.xml 并添加 IvyIdea 方面。
导入后,在项目浏览器中单击“程序集”,然后按 F4 转到模块设置。
单击模块的“Sources”选项卡,检查是否有名为“res”、“packages-res”的目录或任何其他表示资源的非标准目录 - 除了 build-res(忽略这些目录)。单击这些目录,然后单击树上方的“标记为 - 资源”。
单击模块的“IvyIdea”构面,并配置以下内容:
选择“使用模块特定设置”(选中它)。然后选择“使用你自己的”,并从“程序集”目录中选择ivysettings.xml 文件。
单击“属性”选项卡,然后单击“添加文件”,然后从程序集目录中选择 build.properties 文件。
对其他主要模块重复此过程,例如核心和引擎以及可以找到 ivy.xml 文件的其他所有模块。这是一项繁重的工作,因为有很多模块。您可以使用以下命令(linux)来查找所有模块:
find . -name 'ivy.xml'
Run Code Online (Sandbox Code Playgroud)完成后,让 IvyIdea 通过在项目资源管理器中单击 pentaho-kettle(主目录)来解决所有依赖项,然后右键单击 -> IvyIdea -> 解决所有依赖项。确保准备好足够的咖啡和午餐,因为这将花费很长时间。
在插件下找到“pom.xml”文件。在 IntelliJ 右侧打开“Maven Projects”视图(或使用 View -> Tool Windows -> Maven 项目)。
在该 Maven 视图中,单击绿色 + 添加 pom,然后导航到 plugins/pom.xml。这可以让 IntelliJ 导入其余插件。这又需要一段时间。
现在,单击 Project Explorer 中的 UI 模块,然后按 F4。单击“依赖项”选项卡,然后单击右侧的绿色“+”并选择“模块依赖项”。
在随后的列表中:选择所有内容,然后按确定。这使得 ui 模块有一个包含插件的类路径,这样 Spoon 就会在启动时找到这些东西。
之后,IntelliJ 应该能够构建添加的模块:按 ctrl+f9 进行检查。
让这个东西运行起来又是一大乐趣。我运行的是 Linux,因此此处的说明适用于此。其他操作系统或 Windows 上的 YMMV。
在项目资源管理器中,找到 UI 项目中的“Spoon”类(或按 CTRL+N,然后按 Spoon)。
找到 main 方法并按其前面空白处的绿色按钮。这将尝试运行 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
Run Code Online (Sandbox Code Playgroud)这些参数是从 Spoon.sh(通常启动 Spoon 的脚本)中窃取的。如果仍有问题,您可能需要检查该文件。
将工作目录设置为 pentaho-kettle/ assembly/package-res
这应该可以运行 Spoon。您可能会在控制台中收到相当多的消息,并且 Spoon 可能需要一分多钟才能启动(在我的速度相当快的机器上),所以请耐心等待;)
祝你好运 ;)
| 归档时间: |
|
| 查看次数: |
9019 次 |
| 最近记录: |