maven插件 - 获取generated-sources目录

时间:2015-05-04 20:44:24

标签: maven maven-plugin

我正在开发一个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;

    ....

3 个答案:

答案 0 :(得分:4)

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

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

如果设置了required,则可以通过pom文件配置进行更改。如果您设置为readonly,则无法在pom文件中更改它。

对于generated-sources部分,没有特殊的占位符等。换句话说,没有别的办法可以去。

答案 1 :(得分:3)

如果您需要将文件夹添加到编译过程中,您必须采用以下方式:

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

project.addCompileSourceRoot(TheFolderYouWouldLikeToAdd);

答案 2 :(得分:0)

  1. “target / generated-sources”不是生成源的标准文件夹。
  2. 任何生成源的插件,“询问”生成源的位置。例如。对于jaxws:wsimport,它是参数“sourceDestDir”。