如何从maven项目运行外部ruta脚本,而不将脚本或其typesystem放在类路径中?
到目前为止,我一直在从一个maven项目运行ruta脚本,创建AnalysisEngine和CAS,并处理引擎。为此,我将所有脚本和描述符文件(Engine和TypeSystem)放入maven项目的scr/main/resources文件夹中 现在,我想将脚本和TypeSystem文件放在一个外部路径中,并将该路径动态地传递给运行脚本的java代码。有可能吗?如果是,怎么做 我只是将文件(脚本和描述符)放在一个外部路径中,并传递新路径来实例化AnalysisEngine,如下所示如何从maven项目运行外部ruta脚本,而不将脚本或其typesystem放在类路径中?,maven,uima,ruta,Maven,Uima,Ruta,到目前为止,我一直在从一个maven项目运行ruta脚本,创建AnalysisEngine和CAS,并处理引擎。为此,我将所有脚本和描述符文件(Engine和TypeSystem)放入maven项目的scr/main/resources文件夹中 现在,我想将脚本和TypeSystem文件放在一个外部路径中,并将该路径动态地传递给运行脚本的java代码。有可能吗?如果是,怎么做 我只是将文件(脚本和描述符)放在一个外部路径中,并传递新路径来实例化AnalysisEngine,如下所示 final
final AnalysisEngine engine = AnalysisEngineFactory.createEngine("home/admin/Desktop/TEST_ScriptFolder/com/textjuicer/ruta/date/Dazzle_ChapRef_UpdatedEngine");
错误
org.apache.uima.util.InvalidXMLException:无法解析导入。在类路径或数据路径中未找到名为“home/admin/Desktop/TEST_ScriptFolder/com/textJuice/ruta/date/Dazzle_ChapRef_UpdatedEngine.xml”的文件。(描述符:)
位于org.apache.uima.resource.metadata.impl.impl\u impl.findAbsoluteUrl(Import\u impl.java:117)
位于org.apache.uima.fit.factory.AnalysisEngineFactory.createEngineDescription(AnalysisEngineFactory.java:869)
位于org.apache.uima.fit.factory.AnalysisEngineFactory.createEngine(AnalysisEngineFactory.java:107)
位于com.textJuice.ruta.date.ArtifactAnnotator.getAllAnnotations(ArtifactAnnotator.java:93)
在ApplyingStyle.XmiTransformer.parseXMI(XmiTransformer.java:33)
在ApplyingStyle.ApplyStyle.applyStyleOnDocx(ApplyStyle.java:76)中有两个层:
scriptpath
中,描述符位于descriptorPaths
中,单词列表位于resourcepath
中。有关更多信息,请参阅
描述符中导入的问题可以通过在UIMA ResourceManager中设置数据路径或将导入更改为“位置”而不是“名称”来解决。数据路径可以用作类路径的替换。如果Ruta描述符在Ruta maven插件中指定了位置导入,那么它将使用位置导入
免责声明:我是UIMA Ruta的开发者谢谢!是否可以在引擎文件中设置变量(路径)而不是硬编码路径?因为我想动态获取路径(java)并将其传递给引擎文件。有没有一种直接的方法?或者。。。是否可以从引擎文件中获取当前路径,并将其设置为脚本路径、资源路径和描述符路径?始终可以通过编程方式重新配置分析引擎(更改参数值)。如果分析引擎描述基于xml描述符,那么它还存储其原始url。请让我知道如何通过编程实现。我在这里提出了一个新问题: