gpt4 book ai didi

java - 将插件资源文件分发到宿主项目

转载 作者:行者123 更新时间:2023-12-01 18:34:09 25 4
gpt4 key购买 nike

我有一个 Maven 插件,它公开了 Mojo,其目标是在编译阶段运行。该项目是使用 mvn archetype:generate 生成的,POM 包含运行该项目时附带的所有标准内容,几乎没有偏差。该项目包括几个资源文件,例如filea.txt 和 fileb.txt,打包为 jar 的一部分。

当在项目中使用该插件时,我希望提取 jar 中包含的文件并将其复制到主机项目的 target\test-classes 目录中。我正在尝试使用插件 jar 来分发一些文件+公开一些可以使用这些文件的功能。

这是一种有效的方法吗?如果是,我是否可以向插件 POM 添加设置以指示应提取和复制插件中的内容?我想将这个逻辑集中在插件中,而不是必须在插件主机中执行。

我觉得这是 maven-dependency-plugin 或 maven-resources-plugin 或 build-helper-maven-plugin:attach-artifact 的东西,尝试了几种不同的方法,但我认为我错过了一些明显的东西:

例如插件 POM 中有类似的东西吗?

  <plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<outputDirectory>${basedir}/target/test-classes</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>filea.txt</include>
<include>fileb.txt</include>
</includes>
</resource>
</resources>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-plugin-plugin</artifactId>
<version>3.6.0</version>
</plugin>
// etc etc

Google fu 让我失望了,一直在 Maven 资源页面上结束。如果需要,可以发布目录结构/更多信息。

干杯

最佳答案

首先,我建议将需要分发的资源放入 src/main/resources 中,看起来你已经完成了......但是删除 maven-resources-plugin 的配置并让Maven 做它的工作。这会自动复制到 target/classes/ 中,稍后将结果打包到生成的 jar 中。

如果您的插件需要获取这些文件,则可以通过 this.getClass().getResourcesAsStream("/...") 作为常用资源访问这些文件,并将它们读取并写入新位置最好进入 target/...

关于java - 将插件资源文件分发到宿主项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60096187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com