问题标签 [plexus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
49 浏览

java - 在自定义 Junit RunListener 中使用 Maven 的 EventSpyDispatcher

我正在尝试编写一个自定义 Junit RunListener,在执行测试时由 Surefire 调用。我的侦听器应该创建一些自定义“事件”以通过 Maven 发送EventSpyDispatcher,以便我也创建的事件间谍可以接收这些事件。

CustomTestRunListener生活在一个单独的 jar 中,该 jar 添加到 Surefire 的测试范围类路径中。我的听众看起来像这样

它在 Surefire 中成功连接,因为我可以看到我的System.out报表正在打印。

但是 eventSpyDispatcher 没有被注入(它上面的系统是'null')我怎么能做到这一点?

0 投票
1 回答
304 浏览

maven - 如何让 maven unpack 覆盖只读文件?

我的 maven 构建使用 unpack 来提取一些包,如 zulu 或 postgres,其中包含只读文件(例如 -r-xr-xr-x pgsql/lib/libssl.so.1.0.0)。重新构建时,[WARNING] Unable to expand to file .../pgsql/lib/libssl.so.1.0.0表明该文件没有被覆盖 - 只要我不切换版本就可以(我仍然希望没有警告)。

但是,例如,如果我切换到较新的 postgres,如何解压以覆盖文件?或者,如果这太复杂了,总是覆盖文件?

请注意,包含只读文件的文件夹是可写的,因此没有技术原因不覆盖文件(删除 - 创建)。

假设包所有者有原因,我也更愿意将只读文件保持为只读。

https://maven.apache.org/plugins/maven-dependency-plugin/unpack-mojo.html我发现<overWriteIfNewer>默认情况下这是真的。由于我的构建总是试图覆盖文件,我认为 overWrite 通常是正确的,它只是没有成功。

作为参考,这是我的 pom.xml 的相关部分

0 投票
1 回答
576 浏览

java - 引导层初始化期间发生错误。plexus.container.default:无效的模块名称:'default' 不是 Java 标识符

我正在为我的应用程序使用 IntelliJ IDEA 2020.2.3 和 maven。

当我尝试调用 maven javafx:ru​​n 插件(就像每个 maven 插件一样)时,我收到了这样的警告:

[警告] 无法从 plexus-container-default-1.7.1.jar 中提取模块名称:plexus.container.default:无效的模块名称:“默认”不是 Java 标识符

[警告] 某些依赖项在尝试作为模块解析时遇到问题,不会包含在类路径中;您可以通过“includePathExceptionsInClasspath”配置参数更改此行为。

该应用程序正常工作。

但是,当我尝试在 IDE 中简单地运行 Main 类时,出现错误:

这是我的 pom.xml:

我想运行 Main 类而不是运行 javafx:ru​​n 插件,因为当我测试某些功能时,它对我来说有点长且有害。另外我认为这样的错误不是正常情况。你有什么建议可以尝试?

删除对 maven-dependency-plugin 的依赖后,错误消失了,但现在在尝试运行 Main 类时出现其他错误:

构建输出 Printscreen

我的 module-info.java 看起来像:

0 投票
0 回答
17 浏览

java - 如何摆脱丛类世界?

我有 2 个基于相同父 maven pom.xml 的不同 JAVA 11 子项目。

第一个是从一开始就为 Maven 设置了Spring 初始化程序,而第二个最初是在没有 SpringBoot 的情况下设置的。

第二个让我头疼,因为它缺少一些依赖项(JAI,JPEG2000),这些依赖项位于父 pom.xml 中,并且很好地包含在第一个使用 Spring maven 插件打包应用程序的项目中,但没有包含在第二个项目中。

这就是我决定将第二个项目转移到 SpringBoot 的原因。但是它仍然缺少与以前相同的依赖关系,当我打印加载的类时它仍然显示:(/home/path/to/netbeans/java/maven/boot/plexus-classworlds-2.6.0.jar我使用的是 Netbeans 12)而第一个项目列出了所有加载的 jar,因为它是预期的。第二个项目 pom.xml 内容如下:

Plexus-classworlds 不在任何 pom 中,两个项目 pom 看起来很相似,因为我将第二个项目移至 SpringBoot,所以我怎样才能禁用plexus-classworlds并摆脱它,以便在 System.out.println(System.getProperty("java.class.path").replace(":","\n"));从类路径获取加载的类时,我看到一个列表不是这个单一的 plexus-classworlds jar 吗?

我相信我可能在过去的某个时候搞砸了一些启用这个丛类世界的配置文件,但我不记得了。

我试图从 Netbeans 中删除这个 jar,但是没有一个项目启动。

那么有人可以告诉我如何摆脱类路径中显示的 plexus-classworlds.jar 吗?

任何提示表示赞赏!