编写 Beanshell Maven 插件

您可以使用Beanshell编写 Maven 插件。

Pom 配置

  <dependencies>
    <dependency>
      <groupId>org.apache-extras.beanshell</groupId>
      <artifactId>bsh</artifactId>
      <version>2.0b6</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-script-beanshell</artifactId>
      <version>3.6.4</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-plugin-plugin</artifactId>
        <version>3.6.4</version>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.plugin-tools</groupId>
            <artifactId>maven-plugin-tools-beanshell</artifactId>
            <version>3.6.4</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>

豆壳插件

Beanshell mojo 使用与带有 javadoc 标签的 Java mojo 相同的 javadoc 标签。

示例脚本内容:

/**
 * Touches a test file.
 *
 * @goal touch
 * @requiresDependencyResolution=test
 * @deprecated Don't use!
 * @since 1.2
 */

import org.apache.maven.plugin.Mojo;
import org.apache.maven.script.beanshell.BeanshellMojoAdapter;
import org.codehaus.plexus.util.FileUtils;



execute()
{
    logger.info( "Executing beanshell mojo..." );
    FileUtils.fileWrite( outDir + "/" + name, "This is a Beanshell test" );
}

/**
 * Output directory for files.
 *
 * @parameter expression="${project.build.directory}"
 * @required
 */
setOutDir( file )
{
    outDir = file;
}

/**
 *
 *
 * @parameter expression="${name}"
 * @required
 */
setName( name )
{
    name = name;
}

return new BeanshellMojoAdapter( (Mojo) this, this.interpreter );