【问题标题】:How to modify default properties in Maven extension如何在 Maven 扩展中修改默认属性
【发布时间】:2011-10-02 19:36:01
【问题描述】:

我想编写一个 maven 插件(扩展),它实现了 javascript 项目的生命周期,因此可以编译带有 pom.xml 的项目:

<?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.xmlfile 的插件,该文件定义了生命周期,因此我可以在各个阶段调用我自己的 Mojos。但是在某些阶段,只要我可以更改一些默认值,默认的 mojos 就足够了。例如,我想为 Maven 资源插件指定自定义 outputDirectory,以便将 JavaScript 资源复制到 target/classes/script-resources 而不是 target/classes。这可以在插件中完成而不复制整个 ResourcesMojo 类并更改那里的属性的默认值吗?

【问题讨论】:

    标签: maven maven-2 maven-plugin maven-extension


    【解决方案1】:

    魔精:

    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>   
    

    【讨论】:

    • 这只是解释了我如何将配置变量传递给自定义 Mojo。这并不能解决问题。
    猜你喜欢
    • 2016-12-17
    • 2011-10-22
    • 2013-04-03
    • 1970-01-01
    • 2016-12-24
    • 2020-08-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多