我可以创建一个Maven插件来生成项目,然后构建该项目吗?

时间:2013-01-12 18:47:07

标签: maven maven-plugin

是否可以将原型和普通Maven插件的功能合并到一个插件中?

我有一个自定义语言,我可以编译成Java源代码。我编写了一个Maven插件,它在generate-sources阶段执行此操作,将Java源添加到项目中,并构建项目。它按照我的预期工作。

但是,要使用它,我需要首先写出一个引用我的插件的pom.xml文件,并描述输入文件的存在位置。我希望能够在单个maven命令中直接从原始输入文件转换为已编译的代码。

例如,假设我有这样的目录结构:

my-project/
    some-input-file.dsl

我想跑

bash$ mvn com.waisbrot.plugin:generate -DgroupID=com.waisbrot package

在Maven完成运行之后:

my-project/
    some-input-file.dsl
    pom.xml
    target/
        generated-sources/
            plugin/
                SomeInputFile.java
        classes/
            com/
                waisbrot/
                    SomeInputFile.class
        some-input-file-1.0.jar

1 个答案:

答案 0 :(得分:1)

实际上,原型的集成测试允许您声明参数和目标。所以这样做:

  1. 选择您要创建的模板项目
  2. mvn archetype:create-from-project。它将创建一个新的原型
  3. 查看src / test / resources / projects,特别是goal.txt和archetype.properties(来源:http://maven.apache.org/archetype/maven-archetype-plugin/integration-test-mojo.html)。 Tweak so install将是隐含的
  4. mvn verify将能够构建原型,运行它并安装它
  5. 希望有所帮助