maven 插件 - 获取生成的源目录

maven plugin - get generated-sources directory

我正在开发 Maven 插件。有没有办法获取 target\generated-sources 目录的位置?可以得到target目录的位置,如下:

@Mojo(...)
public class MyMojo extends AbstractMojo {
    @Parameter(defaultValue = "${project.build.directory}", readonly = true)
    private File target;

    ....

这给出:

<base dir>\target

我需要:

<base dir>\target\generated-sources

当然,我可以将 generated-sources 附加到路径,但最好依赖项目设置。

所以这是不需要的:

@Mojo(...)
public class MyMojo extends AbstractMojo {
    @Parameter(defaultValue = "${project.build.directory}\generated-sources", readonly = true)
    private File target;

    ....

您可以在您的 mojo 中使用以下内容:

@Parameter(defaultValue="${project.build.directory}/generated-sources/WhatEver", required=true)
private File targetFolder;

如果您设置为必需,您可以通过 pom 文件配置来更改它。如果设置为 readonly,则无法在 pom 文件中更改它。

对于 generated-sources 部分,不存在特殊的占位符等。所以换句话说,没有其他方法可以去。

如果您需要将文件夹添加到编译过程中,您必须这样做:

@Parameter (defaultValue="${project}", required=true, readonly=true)
private MavenProject project;
...

project.addCompileSourceRoot(TheFolderYouWouldLikeToAdd);
  1. "target/generated-sources" 不是生成源的标准文件夹。
  2. 任何生成源代码的插件,"asks"在哪里生成源代码。例如。对于 jaxws:wsimport,它是参数 "sourceDestDir"。