Stanford-CoreNLP和Stanford-Parser中的Maven类名冲突

Ehs*_*adi 1 java dependency-management stanford-nlp maven

我的(maven)项目依赖于stanford-CoreNLP和stanford-Parser,显然每个依赖的(词汇化)解析器产生不同的输出,它们不相似.

我的问题是如何确定应该从哪个包加载解析器?解析器类在两个包中都有相同的名称: edu.stanford.nlp.parser.lexparser.LexicalizedParser maven自动从stanford-coreNLP包加载类,而我希望它从stanford-Parser加载.

如果你能帮助我提出建议,我将不胜感激.

Aar*_*lla 5

我会提出一个错误,要求他们将词法解析器移动到一个新的maven工件(或其中几个),这样你就可以区分它们.

如果没有发生,您有两种选择:

  1. 使用Maven阴影插件(由ooxi建议)
  2. 删除违规类

细分第二种方法:

  1. 使用您最喜欢的ZIP工具打开JAR存档.
  2. 删除有问题的包裹.
  3. 复制原始POM
  4. 将版本版本更改为1.1.MythBuster.11.1.no-lexer.1
  5. 用于mvn file:install在本地仓库中安装修改过的工件
  6. 测试一下
  7. 用于mvn deploy:deploy-file在公司的仓库中安装修改后的工件

我更喜欢第二种方法,因为它确保构建有一个干净的类路径,人们知道你搞砸了原始文件,而且很明显发生了什么.