SBuild SBuild Plugin

An SBuild Plugin to easily create SBuild plugins.

License

License

GroupId

GroupId

org.sbuild
ArtifactId

ArtifactId

org.sbuild.plugins.sbuildplugin
Last Version

Last Version

0.3.0
Release Date

Release Date

Type

Type

jar
Description

Description

SBuild SBuild Plugin
An SBuild Plugin to easily create SBuild plugins.
Project URL

Project URL

https://github.com/SBuild-org/sbuild-plugin-plugin
Source Code Management

Source Code Management

https://github.com/SBuild-org/sbuild-plugin-plugin

Download org.sbuild.plugins.sbuildplugin

How to add to project

<!-- https://jarcasting.com/artifacts/org.sbuild/org.sbuild.plugins.sbuildplugin/ -->
<dependency>
    <groupId>org.sbuild</groupId>
    <artifactId>org.sbuild.plugins.sbuildplugin</artifactId>
    <version>0.3.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.sbuild/org.sbuild.plugins.sbuildplugin/
implementation 'org.sbuild:org.sbuild.plugins.sbuildplugin:0.3.0'
// https://jarcasting.com/artifacts/org.sbuild/org.sbuild.plugins.sbuildplugin/
implementation ("org.sbuild:org.sbuild.plugins.sbuildplugin:0.3.0")
'org.sbuild:org.sbuild.plugins.sbuildplugin:jar:0.3.0'
<dependency org="org.sbuild" name="org.sbuild.plugins.sbuildplugin" rev="0.3.0">
  <artifact name="org.sbuild.plugins.sbuildplugin" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.sbuild', module='org.sbuild.plugins.sbuildplugin', version='0.3.0')
)
libraryDependencies += "org.sbuild" % "org.sbuild.plugins.sbuildplugin" % "0.3.0"
[org.sbuild/org.sbuild.plugins.sbuildplugin "0.3.0"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

SBuild Plugin Plugin

This SBuild plugin provides a Plugin to build SBuild Plugins.

Binary releases

The SBuild Plugin Plugin is available from Maven Central.

To use it in SBuild 0.7.1 or newer, simply add it to the project classpath.

@classpath("mvn:org.sbuild:org.sbuild.plugin.sbuildplugin:0.3.0")

Configuration

All configurable properties are documented via ScalaDoc in the configuration class SBuildPlugin.

Usage Example

To build an imaginary ExamplePlugin in package org.sbuild.plugins.example in version 0.1.0 you can use the following SBuild buildfile. Scala source files are assumed to be in src/main/scala directory.

import de.tototec.sbuild._

@version("0.7.1")
@classpath("mvn:org.sbuild:org.sbuild.plugins.sbuildplugin:0.3.0")
class SBuild(implicit _project: Project) {

  import org.sbuild.plugins.sbuildplugin._
  Plugin[SBuildPlugin] configure (_.copy(
    // the version of SBuild this plugin is compatible to
    sbuildVersion = SBuildVersion.v0_7_1,
    // the plugin API
    pluginClass = "org.sbuild.plugins.example.Example",
    // the version of this plugin
    pluginVersion = "0.1.0"
  ))

}

That’s all to compile and package a plugin which has no additional dependencies.

bash$ sbuild -l
/tmp/exampleproject/target/org.sbuild.plugins.example-0.1.0.jar
clean
compile
jar

To build the plugin use the jar target, which is an alias to the output jar (target/org.sbuild.plugins.example-0.1.0.jar).

Building from Source

You need a recent version of SBuild.

git clone https://github.com/SBuild-org/sbuild-sbuild-plugin.git
cd sbuild-sbuild-plugin/org.sbuild.plugins.sbuildplugin
sbuild all

You will find the built jar in the directory org.sbuild.plugins.sbuildplugin/target.

Future development

The SBuild plugin ecosystem just was born. If there are in the near future stable plugin for tasks like compiling, packaging, testing, etc, this plugin will start to use these instead of defining all these task on its own.

Changelog

SBuild Plugin Plugin 0.3.0 - 2014-02-18

  • API Change: Rework configuration of SBuild version used for the plugin build (and as lowest compatibility margin). By this change, it is also possible to build a plugin against an unreleased SBuild version.

SBuild Plugin Plugin 0.2.2 - 2014-01-22

  • Compile and run tests with ScalaTest.

  • New manifest parameter to allow additional entries in the final plugin JAR manifest.

SBuild Plugin Plugin 0.2.1 - 2013-12-21

  • Fixed a bug resulting in an invalid SBuild-Plugin entry in the manifest.

SBuild Plugin Plugin 0.2.0 - 2013-12-21

  • This version requires at least SBuild 0.7.1!

  • Changed to immutable config class SBuildPlugin

SBuild Plugin Plugin 0.1.0 - 2013-12-18

  • Initial Release, compatible to SBuild 0.7.0

org.sbuild

SBuild

A magic-free yet powerful Scala-based build tool

Versions

Version
0.3.0
0.2.2
0.2.1
0.2.0
0.1.0