A generic framework for chaining build tasks in various build systems.
Table of Contents
- Chaining of tasks
- Support for custom task implementations
- Caching (and thus reusing) of task results
- Simple integration with third party tools
<dependency> <groupId>org.basinmc.blackwater</groupId> <artifactId>pipeline</artifactId> <version>1.0</version> </dependency> <!-- For unstable releases: --> <repository> <id>ossrh</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <dependency> <groupId>org.basinmc.blackwater</groupId> <artifactId>pipeline</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
ArtifactManager manager = ...; ArtifactReference reference = ...; Task task = ...; Path outputPath = ...; Pipeline pipeline = Pipeline.builder() .withArtifactManager(manager) // optional .withTask(task) .withInputArtifact(reference) // optional .withOutputFile(outputPath) // optional .register() .build(); pipeline.execute();
Note that either an input/output artifact or file may be specified for each task (the exact limitations and additional parameters are specified by the task implementation).
- Clone this repository via
git clone https://github.com/BasinMC/Blackwater.gitor download a zip
- Build the library by running
mvn clean install
- The resulting jars can be found in their respective
targetdirectories as well as your local maven repository
You encountered problems with the library or have a suggestion? Create an issue!
- Make sure your issue has not been fixed in a newer version (check the list of closed issues
- Create a new issue from the issues page
- Enter your issue's title (something that summarizes your issue) and create a detailed description containing:
- What is the expected result?
- What problem occurs?
- How to reproduce the problem?
- Crash Log (Please use a Pastebin service)
- Click "Submit" and wait for further instructions
Before you add any major changes to the library you may want to discuss them with us (see Contact) as we may choose to reject your changes for various reasons. All contributions are applied via Pull-Requests. Patches will not be accepted. Also be aware that all of your contributions are made available under the terms of the Apache License 2.0. Please read the Contribution Guidelines for more information.
This project is released under the terms of the Apache License, Version 2.0.
The following note shall be replicated by all contributors within their respective newly created files (variables are to be replaced; E-Mail address or URL are optional):
Copyright <year> <first name> <surname <[email address/url]> and other copyright owners as documented in the project's IP log. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.