mvn package报错找不到org.codehaus.plexus.util.DirectoryScanner

  • mvn版本:3.9.7
    springboot项目mvn package报错,异常信息如下在这里插入图片描述

查看具体报错信息:

Caused by: org.apache.maven.plugin.PluginContainerException: A required class was missing while executing net.alchim31.maven:yuicompressor-maven-plugin:1.3.0:compress: org/codehaus/plexus/util/DirectoryScanner
-----------------------------------------------------
realm =    plugin>net.alchim31.maven:yuicompressor-maven-plugin:1.3.0
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/D:/ProgramData/dev/repository/net/alchim31/maven/yuicompressor-maven-plugin/1.3.0/yuicompressor-maven-plugin-1.3.0.jar
urls[1] = file:/D:/ProgramData/dev/repository/com/yahoo/platform/yui/yuicompressor/2.4.6/yuicompressor-2.4.6.jar
urls[2] = file:/D:/ProgramData/dev/repository/rhino/js/1.6R7/js-1.6R7.jar
Number of foreign imports: 1
import: Entry[import  from realm ClassRealm[maven.api, parent: null]]

从异常信息看,是mvn在打包时插件运行异常导致的,提示yuicompressor-maven-plugin:1.3.0这个版本的插件执行时有个org/codehaus/plexus/util/DirectoryScanner类找不到,这个问题大概率是mvn插件版本不兼容导致的问题。

解决方案-更新插件版本

访问mvn中央仓库,搜索yuicompressor-maven-plugin,找到最新版本的插件引入,我这里引入的版本是1.5.1
在这里插入图片描述
更新插件版本后,重新执行mvn package,打包成功。

package com.ksyun.train.plugins; import com.sun.tools.javac.util.List; import org.apache.maven.artifact.Artifact; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.util.FileUtils; import java.io.File; import java.io.IOException; import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; // ⽬标名统⼀为bootJar @Mojo(name="bootJar") public class BootJarMojo extends AbstractMojo { // 可⾃由获取maven内置变量 @Parameter(defaultValue = "${settings.localRepository}", required = true) private String localRepository; // 接收通过命令mvn -Dmain.class=com.ksyun.train.App传递的参数, 请勿修改参数名 @Parameter(property = "main.class", required = true) private String mainClass; // maven项⽬信息,需要的数据基本都可以从此对象中获取, // 请⾃⾏调试打印观察project信息,开发过程中可利⽤json⼯具打印该对象信息 @Component protected MavenProject project; // 请实现插件的核⼼逻辑⽅法execute public void execute() throws MojoFailureException { getLog().info("project localRepository is " + localRepository); File baseDir = project.getBasedir(); getLog().info("project base dir is " + baseDir); String artifactId = project.getArtifactId(); String version = project.getVersion(); File targetDirectory = new File(baseDir, "target"); File classesDirectory = new File(targetDirectory, "classes"); getLog().info("project classes dir is " + classesDirectory.getAbsolutePath()); // get project dependency jars, ignore dependency transfer, only one demo // 获取项目依赖的jar包文件 List<File> dependencyFiles = (List<File>) project.getDependencyArtifacts() .stream() .map(Artifact::getFile) .filter(Objects::nonNull) .collect(Collectors.toList()); } }
07-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值