gpt4 book ai didi

maven - Maven依赖的内部属性

转载 作者:行者123 更新时间:2023-12-03 00:05:36 25 4
gpt4 key购买 nike

科技:Maven 3 + IntelliJ + ElasticSearch 5.5.0 + Carrot2 3.15.1

我有一个带有Carrot2和ElasticSearch的项目,这引起了一些冲突。 Carrot2使用Lucene 5.3.1,ElasticSearch使用6.3.1版本。我想强制胡萝卜2使用6.3.1 Lucene版本修复它。

我试图在项目的主pom文件中添加一个属性:

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<elasticsearch.version>5.4.2</elasticsearch.version>
<org.apache.lucene.version>6.5.1</org.apache.lucene.version>
</properties>

不幸的是,这种方式仍然会引起由Lucene版本冲突引起的错误。
最后,我通过更改胡萝卜的依赖项pom文件的内部值找到了适用于本地计算机的解决方案:
<parent>
<groupId>org.sonatype.oss</groupId>
<artifactId>oss-parent</artifactId>
<version>5</version>
</parent>

<groupId>org.carrot2</groupId>
<artifactId>carrot2</artifactId>
<version>3.15.1</version>

<name>Carrot2</name>
(...)
<properties>
(...)
<org.apache.lucene.version>6.5.1</org.apache.lucene.version>
<org.simpleframework.version>2.7.1</org.simpleframework.version>
<org.carrot2.attributes>1.3.1</org.carrot2.attributes>
</properties>

它工作正常,但仅在我的本地计算机上。胡萝卜pom文件中更改的Lucene版本似乎没有传播,因此需要在项目的任何实例上手动更改此版本。是否有可能强制行家在外部依赖项中使用我的项目属性值?

最佳答案

@Val谢谢。一点解释:

我从一开始就尝试添加排除项,但仅适用于lucene-core。它在我的Windows机器上不起作用,但是似乎可以在另一个基于Linux的平台上正常工作。我添加了以下排除项,它似乎可以在任何计算机上运行:

<dependency>
<groupId>org.carrot2</groupId>
<artifactId>carrot2-core</artifactId>
<version>3.15.1</version>
<exclusions>
<exclusion>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-backward-codecs</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-highlighter</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-memory</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-smartcn</artifactId>
</exclusion>
</exclusions>
</dependency>

但是,仅返回一个解压缩 lucene-core 在我的ubuntu + intellij17 + maven 3.3.9上可以正常工作,但在Windows + intellij14 + maven 3.3.3上不起作用。

程序:
Maven清理->重新导入所有Maven项目->重建

似乎两种配置都有不同的重建/缓存策略,这使我感到困惑。

关于maven - Maven依赖的内部属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45345779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com