如何通过Maven Shade插件重定位解决jive中的NoSuchFieldError

时间:2014-10-30 22:40:56

标签: maven jar rename conflict maven-shade-plugin

jive 6代码中的某处使用了httpcore-4.0.1.jar

但是,在我的插件中,使用了httpcore-4.3.2.jar

由于这种罐子冲突,我在运行jive的货物启动时看到了NoSuchFieldError

经过调查,我在http://thinkoutofthenet.com找到了关于Maven Shade Plugin解决方案的一个很好的链接(参见上面链接的第二个主题)。

我期待Maven Shade插件可以重命名

import org.apache.http.impl.client.HttpClients;

import embedded.org.apache.http.impl.client.HttpClients;

通过pom.xml中的以下更改。但是,它没有用。有谁知道出了什么问题?以及如何解决我当前的问题?

...
<build>
  <finalName>${final.name}</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>1.4</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>shade</goal>
                </goals>
                <configuration>
                    <shadedArtifactAttached>false</shadedArtifactAttached>
                    <createDependencyReducedPom>true</createDependencyReducedPom>
                    <relocations>
                        <relocation>
                            <pattern>org.apache.http.impl</pattern>
                            <shadedPattern>embedded.org.apache.http.impl</shadedPattern>
                        </relocation>
                    </relocations>
                </configuration>
            </execution>
        </executions>
      </plugin>
      ...

谢谢:)

0 个答案:

没有答案