用于写入文件系统的 Mojo 插件
Mojo plugin for writing to filesystem
我想这样写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"
我感兴趣的是这种方法是否正确?可能吗?你能提供例子吗?
首先,您正在使用使用 Javadoc doclets 注释 类 的古老方法。该机制已被弃用。从 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 参数。
我想这样写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"
我感兴趣的是这种方法是否正确?可能吗?你能提供例子吗?
首先,您正在使用使用 Javadoc doclets 注释 类 的古老方法。该机制已被弃用。从 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 参数。