我一直在尝试重命名tika应用程序类。由于类路径上的重复类,存在加载冲突。当我尝试运行maven install -e时,它抛出了错误,我想使用它
org.apache.tika
作为
com.test1.tika
pom.xml文件如下所示
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test1.tika</groupId>
<artifactId>tika-app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>tika-app</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-app</artifactId>
<version>1.20</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<configuration>
<createSourcesJar>true</createSourcesJar>
<relocations>
<relocation>
<pattern>org.apache.tika.</pattern>
<shadedPattern>com.test1.tika.</shadedPattern>
</relocation>
</relocations>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
mvn package命令的错误如下:
[错误]无法执行目标org.apache.maven.plugins:maven-shade-plugin:2.3:项目tika-app上的shade(默认):创建着色jar时出错:null:IllegalArgumentException - > [Help 1] org.apache .maven.lifecycle.LifecycleExecutionException:无法在项目tika-app上执行目标org.apache.maven.plugins:maven-shade-plugin:2.3:shade(默认):在org.apache.maven创建着色jar:null时出错。 org.apache.maven.life.internal.MojoExecutor.execute中的org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)中的lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:215) MojoExecutor.java:148)org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)at org org.apache.maven.lifecyc上的.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56) le.internal.LifecycleStarter.execute(LifecycleStarter.java:128)org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)atg.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)at org .apache.maven.DefaultMaven.execute(DefaultMaven.java:105)org.apache.maven.cli.MavenCli.execute(MavenCli.java:956)org.apache.maven.cli.MavenCli.doMain(MavenCli.java) :288)atg.apache.maven.cli.MavenCli.main(MavenCli.java:192)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43),位于org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced的java.lang.reflect.Method.invoke(Method.java:498)中(Launcher.java: 289)org.codhaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)org.cod上的org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) ehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)引起:org.apache.maven.plugin.MojoExecutionException:在org.apache.maven.plugins.shade.mojo中创建着色jar:null时出错。 shadeMojo.execute(ShadeMojo.java:566)org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210) org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)位于org.apache.maven.life循环的org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148) .internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder .build(SingleThreadedBuilder.java:56)org.apache.maven.lifecycle.internal.LifecycleStarter.execute(Lifec ycleStarter.java:128)org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)atg.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)org.apache.maven.cli.MavenCli.execute(MavenCli.java:956)位于org.apache的org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)。 maven.cli.MavenCli.main(MavenCli.java:192)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43)在org.codehaus.plexus的org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)的java.lang.reflect.Method.invoke(Method.java:498) .classworlds.launcher.Launcher.launch(Launcher.java:229)位于org.codehaus.plexus.classworlds.launcher.Launcher的org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)。 main(Launcher.java:356)引起:org.objectweb.asm.ClassReader中的java.lang.IllegalArgumentException。 (未知来源)org.objectweb.asm.ClassReader。 (未知来源)org.objectweb.asm.ClassReader。 (未知来源)org.apache.maven.plugins.shade.DefaultShader.addRemappedClass(DefaultShader.java:331)atg.apache.maven.plugins.shade.DefaultShader.shade(DefaultShader.java:165)org.apache位于org.apache.maven.maven.life.internal.MojoExecutor的org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)的.maven.plugins.shade.mojo.ShadeMojo.execute(ShadeMojo.java:471) .execute(MojoExecutor.java:210)org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148 )org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)位于org.apache.maven的org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)。 org.apache.maven.lifecycle.internal.Life中的lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)在org.apache.maven.maven.maven.DefaultMaven.doExecute(DefaultMaven.java:192)org.apache.maven的org.apache.maven.maven.DefaultMaven.doExecute(DefaultMaven.java:192)中的cycleStarter.execute(LifecycleStarter.java:128) .defaultMaven.execute(DefaultMaven.java:105)org.apache.maven.cli.MavenCli.execute(MavenCli.java:956)org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)at at org.apache.maven.cli.MavenCli.main(MavenCli.java:192)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect。委托在org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)的org.ctoodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)处于java.lang.refut.Method.invoke(Method.java:498) .codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)at org.codehaus.plexus.cla ssworlds.launcher.Launcher.main(Launcher.java:356)[ERROR] [ERROR]使用-X开关重新运行Maven以启用完整的调试日志记录。 [错误] [错误]有关错误和可能的解决方案的更多信息,请阅读以下文章:[错误] [帮助1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
将maven-compiler-plugin版本从2.3更改为3.2.1解决了它。