问题标签 [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 投票
1 回答
75 浏览

maven-3 - 如何使用 plexus-archiver 为条目设置额外字段

我正在使用一个使用 plexus-archiver 的 maven 插件来创建一个 zip 文件。基本上,我得到了 Sisu 注入的组件,然后我遍历指定的文件集并注册所需的文件集:

并且 zip 正在正确生成。

但我需要在添加到 zip 的一些文件中包含文件 mime 类型的额外字段。

我怎么能用 plexus-archiver 做到这一点?

0 投票
0 回答
992 浏览

maven - 是否有 Maven/Plexus 属性表达式语法的语法

我一直在寻找有关 Maven 表达式语法的文档。

我设法找到似乎可以完成工作的plexus-interpolation 模块,但它的文档非常稀疏。

有没有比unittests更好的表达式格式的文档?

https://codehaus-plexus.github.io/plexus-interpolation/有一些使用信息,这表明基于 Regex 的插值器是首选。

0 投票
1 回答
122 浏览

java - 使用 XmlPlexusConfiguration 为 bean 样式的 Maven 扩展导入更多配置

我有一个 Maven 扩展,我已经设置为从 POM 配置对象进行配置,其中

最终打电话

方法。

我想允许配置导入额外的配置以允许提出和第二种委托方式,所以

其中工件 g:a:v 有一个文件META-INF/my-project-name.xml与 content <configuration><foo>...</foo></configuration>

我希望将<configuration>与导入和该 XML 文件相结合,以生成与上述设置器相同的调用。


使用

我编写了以下代码来尝试从 XML 文件解析配置,然后调用配置器来配置我的 Maven 扩展。

whereconfigurable只是Objectwith setter 并且configuration是这样XmlPlexusConfiguration加载的:

我获得了ComponentConfigurator通过


当我运行这个时,我得到,

有什么方法可以连接 MapOrientedComponents 和用于配置我的扩展的 bean 样式反射设置器调用?

或者有没有更好的方法将 XML 文件的文本转化为额外的配置操作?


编辑:

经过多一点挖掘后,它看起来像

MapOrientedComponentConfigurator当我通过导致失败的集成测试运行它时返回 a Verifier,但是当我不这样做时,它会产生一种不同且兼容的配置器。

100% 可重复的区别在于我是否运行-X以使记录器产生调试跟踪。

0 投票
1 回答
580 浏览

java - 自定义 MavenResourcesFiltering 难以实现?

我想为一些源文件编写一个自定义资源过滤器,以便在前面添加一行

在资源过滤期间,<path-to-file>文件相对于${project.basedir}.

我遵循了 Maven自定义资源过滤器文档,说我需要编写接口的自定义实现MavenResourcesFiltering

看了之后,org.apache.maven.shared.filtering.DefaultMavenResourcesFiltering我发现从头开始编写MavenResourcesFiltering实现并非易事。所以我一直在寻找从 扩展的方法DefaultMavenResourcesFiltering,并发现我需要为它提供一个自定义MavenFileFilter来执行实际的行前置。

现在我突然想到,除了复制 的整个源代码之外,没有办法做到这一点,DefaultMavenResourcesFiltering以便能够@Requirement为 a 重新定义其注释MavenFileFilter

可能有一些方法可以通过配置Plexus DI 容器来实现我的目标,也许是通过Plexus 组件描述符。唉,这有点异国情调,也许有人知道类似问题的好例子?

0 投票
0 回答
889 浏览

maven - Maven MOJO 依赖注入和参数

在将 Plexus 用于 MOJO 插件 DI 时,是否也可以在其他组件中注入 MOJO 配置参数(@Parameter在 Mojo 类中使用注释)?

换句话说:除了将 Mojo 本身注入其他组件或诉诸手动“init 方法”之外,还有其他方法可以与其他 Plexus 组件共享 Mojo 参数吗?我有点希望参数将由 DI 上下文管理。

假设我有这样的 Mojo:

那么做这样的事情会很好:

而不是必须这样做:

0 投票
1 回答
1321 浏览

java - 从 Plexus 获取 Maven 实例

我目前正在尝试让 PlexusContainer 在MavenMaven 或 Eclipse 执行上下文之外给我一个初始化的实例。

为此,我有以下代码(简化):

鉴于我plexus-component-metadata:process-classes在我的 pom.xml 中有标准插件执行,如果它像这样工作,我会喜欢的。

不幸的是,运行此代码会导致 LookupException,原因如下(为简洁起见,省略了堆栈跟踪):

为了修复丢失的绑定并避免自己不得不手动注册 maven 的完整依赖关系图的麻烦,我尝试将包含在我的依赖项中的组件描述符与为我的应用程序生成的组件描述符合并。

为此,我将所有依赖target/dependency项复制到并运行了一些 shell 脚本,以获取包含components.xml.
我将这些依赖项传递给执行,dependency:unpack然后将提取的位置传递给元数据合并器,如下所示:

不幸的是,错误消息仍然存在所以我想我的问题是:如何轻松地Maven从 Plexus 获取实例?


PS为了完整起见,我目前正在使用以下依赖项:

0 投票
0 回答
101 浏览

java - 在单独的线程中移动项目时不完整的 plexus 容器注入

我有以下涉及 plexus 容器的简化示例:

请注意最后两container.addComponent行。现在,当我在以下设置中使用容器时,我观察到了一些非常奇怪的行为:

此代码工作正常并按预期执行:

一旦这个简单的工作队列处理程序按如下方式移出主线程,我就会收到一个异常:


这个异常的“根本原因”指向一个实际上没有帮助的地方。当 maven 尝试初始化远程存储库时,它访问 a Map<String, ArtifactRepositoryLayout>,它应该包含条目{"default", new DefaultRepositoryLayout()},{"flat", new FlatRepositoryLayout()},但

这个 Map 可以在maven-compat 的 LegacyRepositorySystem中找到,但是在访问 taskQueue 时它没有正确初始化consumer。取出方程式
时,代码确实会产生正确的输出......consumer

为什么会这样?

0 投票
1 回答
219 浏览

java - 配置 Plexus 日志记录

我有一个使用 Plexus Logging 设施的库。我的项目使用 slf4j-simple 通过 slf4j 配置它自己的日志记录。

我试图通过simplelogger.properties使用静音库中的日志记录

这没有效果。

调试到罪魁祸首类,我发现它注入了一个org.codehaus.plexus.logging.Logger. 每当我从容器中获取我的组件时,它Logger就是一个org.codehaus.plexus.logging.console.ConsoleLogger.

我试图绑定我自己的记录器的 NoOp 实现以进行注入,如下所示:

但这对实际注入的记录器实例没有影响。我能够使用 . 从容器中获取我的 Logger 实现container.lookup(Logger.class),但组件仍然使用它的ConsoleLogger.

为了解决这个问题,我尝试注册一个LoggerManager构造我的记录器实现的方法,如下所示:

虽然我现在也可以LoggerManager从容器中获取我的,但仍然ConsoleLogger被注入到库的组件中。

我怎样才能确保我NoOpLogger的被注入到组件中?

0 投票
0 回答
119 浏览

3d - three.js - 不以 3D 呈现的线条

我正在尝试在 Threejs(Plexus 样式)上制作连接点的 3d 图,但由于某种原因,线条是“平坦的”(呈现在平面上而不是 3d 空间中)。

这是代码:

结果如下:

此代码的结果

这些线在 3d 世界中的 2d 表面上渲染,但它们不是 3d 的(所有点都应该相互连接)。

这是代码的codepen

谢谢!

编辑:最终结果应该与此类似,如果点在草图开始时处于一定距离,则它们会相互连接(不关心形状,而是关心它是如何渲染的,而我的草图仅在一个二维平面)。

图 1

图 2

0 投票
1 回答
21 浏览

java - 如何在使用 Plexus Archiver 和 Apache Maven 制作的 java 项目中编辑一些硬编码密钥

我们的 AWS Lambda 账户中有一个项目,该项目是很久以前由一名自由职业者开发的。在该项目中,IAM Credentials API KEY ID 和 ACCESS KEY ID 是硬编码的。现在我们必须更改这些键。但是我们没有项目源代码。

  1. 我们无法解压缩项目,但我们使用 Mac 终端完成了unzip <path>
  2. 我已经使用字节码编辑器程序编辑了这个类rej
  3. 我已经像以前一样压缩了整个程序并将其上传到 lambda。现在我们得到Class not found Exception

项目清单文件有以下数据 Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Built-By: ..... Created-By: Apache Maven 3.3.3 Build-Jdk: 1.8.0_31

有没有办法用上述配置编辑项目中的硬编码键。

提前谢谢了。