用于写入文件系统的Mojo插件

时间:2017-03-30 12:44:44

标签: java maven relative-path mojo

我想写这样的mojo插件:

 /**
 * @goal write-to-fs
 */

public class WriteToFsMojo extends AbstractMojo
{

    public void execute() throws MojoExecutionException
    {
        String relativePathToFile = "resource/my_direcory/my_file.csv"
        // find `relativePathToFile` from where goal executes
        // write the file using goal arguments
    }
}

我想在项目特定文件中找到,例如Menu.csv并从mvn目标参数中将行插入此文件。

例如:

mvn org.apache.maven.plugins:my-plugin:write-to-fs "-Did=100" "-Dname=New Menu Item"

我感兴趣的是这种方法是否正确?可能吗?你能提供一些例子吗?

1 个答案:

答案 0 :(得分:0)

首先,您使用的是使用Javadoc doclet注释类的古老方法。该机制已被弃用。从Maven 3开始,you should use annotations instead

除此之外,它取决于你在插件中尝试做什么。如果你详细说明你想要做什么,我会扩展我的答案。

这是一个骨架:

@Mojo(name = "write-csv")
public class WriteToFsMojo extends AbstractMojo {

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

    @Parameter(property = "outputFile", defaultValue = "someFileName.csv")
    private String filePath;

    public void execute() throws MojoExecutionException {
        File outputFile = new File(project.getBasedir(), filePath);
        // now do something with it
    }
}

这将注入Maven项目定义,并让用户通过命令行或插件配置提供outputFile参数。