2011-07-11 25 views
2

我想写一个Maven插件(扩展),它实现了对JavaScript的项目生命周期,从而有这样一个pom.xml的项目可以编译:如何修改Maven的扩展默认属性

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>de.ailis.maven.javascript</groupId> 
    <artifactId>demo</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 

    <name>Maven JavaScript Demo Project</name> 
    <packaging>javascript</packaging> 

    <build> 
    <plugins> 
     <plugin> 
     <groupId>de.ailis.maven.plugins</groupId> 
     <artifactId>maven-javascript-plugin</artifactId> 
     <version>1.0.0-SNAPSHOT</version> 
     <extensions>true</extensions> 
     </plugin> 
    </plugins> 
    </build> 

</project> 

我已经成功地创建了一个定义生命周期的components.xml文件的插件,这样我就可以在各个阶段中调用我自己的Mojos。但是,只要我可以更改某些默认值,默认mojos就足够了。例如,我想为Maven Resources插件指定一个自定义outputDirectory,以便将JavaScript资源复制到target/classes/script-resources而不是target/classes。这可以在插件中完成,而无需复制整个ResourcesMojo类并更改其中的默认值?

回答

0

魔:

public class MyMojo extends AbstractMojo 
{ 
    private String foo; //filePath 

    public void execute() 
     throws MojoExecutionException 
    {   
     ... 
     writeFile(foo) 
     ... 
    } 
} 

的pom.xml

<plugin> 

    <groupId>de.ailis.maven.plugins</groupId> 

    <artifactId>maven-javascript-plugin</artifactId> 

    <version>1.0.0-SNAPSHOT</version> 

    <configuration> 

     <foo>script-resources</foo> 

    </configuration> 

</plugin> 
+0

这正好解释我怎么可以通过配置变量设置为自定义的Mojo。这并不能解决问题。 – kayahr