Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nix-community/mavenix
Deterministic Maven builds using Nix [maintainer=@icetan]
https://github.com/nix-community/mavenix
Last synced: 3 months ago
JSON representation
Deterministic Maven builds using Nix [maintainer=@icetan]
- Host: GitHub
- URL: https://github.com/nix-community/mavenix
- Owner: nix-community
- License: unlicense
- Created: 2017-02-20T22:50:24.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-02-02T11:50:45.000Z (almost 3 years ago)
- Last Synced: 2024-04-15T09:15:35.716Z (7 months ago)
- Language: Nix
- Homepage:
- Size: 117 KB
- Stars: 47
- Watchers: 5
- Forks: 17
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Mavenix
Deterministic Maven builds using Nix?
## Install
First you need to install the [Nix package manager](https://nixos.org/nix/), if
you already haven't.```sh
nix-env -i -f https://github.com/nix-community/mavenix/tarball/master
```## Usage
### Create stub files
First we need to create some stub Nix expression files. `cd` into your maven
project directory and run:```sh
mvnix-init
```Follow the instructions displayed.
### Generate lock file
The `mvnix-update` script generates a `mavenix.lock` file:
```sh
mvnix-update
```Note the `mvnix-update` script expects a `default.nix` that evaluates to the derivation,
just as is generated by `mvnix-init`. It is possible however to pass in a custom expression
in order to update the derivation. E.g., if the derivation is the attribute `pkgset.pkg`:```sh
mvnix-update -E "(import ./. {}).pkgset.pkg"
```### Packaging third-party projects
If you are packaging a third-party Maven project you can specify a Nix
expression that returns the source of that project.This makes it possible to generate a lock file without having to first
manually clone the target project repository.E.g. generate and build a Nix package for Traccar v4.2:
```sh
mvnix-init -S 'fetchTarball "http://github.com/traccar/traccar/tarball/v4.2"'
mvnix-update
nix-build
```Or a Spring Boot application:
```sh
mvnix-init -S 'fetchTarball https://github.com/Gerschtli/spring-rest-api/tarball/master'
mvnix-update
nix-build
```