java - Maven 阴影插件 - 无法执行目标
问题描述
我一直在尝试重命名 tika app 类。由于类路径上的重复类而存在加载冲突。当我尝试运行 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 命令的错误如下:
plexus.classworlds.launcher.Launcher.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.shade (DefaultShader.java:165) 的 org.apache.maven.plugins.shade.DefaultShader.shade (DefaultShader.java:165) .maven.plugins.shade.mojo.ShadeMojo.execute (ShadeMojo.java:471) 在 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。 http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
解决方案
将 maven-compiler-plugin 版本从 2.3 更改为 3.2.1 解决了它。
推荐阅读
- python - 有没有办法告诉 pylint 不要对函数的 redefined-outer-name 发出警告?
- alert - 测试规则 AlertManager 失败:yaml:解组错误:第 1 行:在 main.unitTestFile 类型中找不到字段组
- r - 从核密度计算质心
- postgresql - $1 和 有什么区别?在 db.query
- python - 编写一个名为 freq_of(letter, text) 的递归函数,用于查找字符串中指定字母的出现次数
- testing - 如何解决错误“”before all“钩子:准备套件:”
- python - 为什么我的 keras 模型需要 3D 列表来预测?
- c - 打印可变类型的结构元素
- php - 在 Laravel 5.4 的多维集合中合并重复项和求和字段
- python - 在 mnist 数据集上训练时查看所有正确和错误识别的图像