initial commit
This commit is contained in:
commit
adce470b5b
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
target
|
||||||
|
.classpath
|
||||||
|
.project
|
||||||
|
.settings
|
||||||
|
.vscode/
|
92
flake.lock
generated
Normal file
92
flake.lock
generated
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"mvn2nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"utils": "utils"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1625869373,
|
||||||
|
"narHash": "sha256-ppW69EucMtn995HOdx+Vs1XyRnsvtHzilHCtNC2ZTQQ=",
|
||||||
|
"owner": "fzakaria",
|
||||||
|
"repo": "mvn2nix",
|
||||||
|
"rev": "23b078b7fd0bedda9e7d8541877f255a54794100",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "fzakaria",
|
||||||
|
"repo": "mvn2nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1625176478,
|
||||||
|
"narHash": "sha256-s1RTYNKw7ySyqrZjns9Cq+Nnjpp75ePgL06pgcbIpoA=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "21b696caf392ad6fa513caf3327d0aa0430ffb72",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-21.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1628902850,
|
||||||
|
"narHash": "sha256-VDQVsZ4eIuiSd2A9iVEfJRIlt4Di2BDca3JMx23zWy0=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "e30d2b73ffdca48fe586ca0c4fd40a002de39021",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"mvn2nix": "mvn2nix",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"utils": "utils_2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1623875721,
|
||||||
|
"narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "f7e004a55b120c02ecb6219596820fcd32ca8772",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"utils_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1623875721,
|
||||||
|
"narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "f7e004a55b120c02ecb6219596820fcd32ca8772",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
20
flake.nix
Normal file
20
flake.nix
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
mvn2nix.url = "github:fzakaria/mvn2nix";
|
||||||
|
utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { nixpkgs, mvn2nix, utils, ... }:
|
||||||
|
let
|
||||||
|
pkgsForSystem = system: import nixpkgs {
|
||||||
|
overlays = [ mvn2nix.overlay (import ./nix/overlay.nix) ];
|
||||||
|
inherit system;
|
||||||
|
};
|
||||||
|
in utils.lib.eachSystem utils.lib.defaultSystems (system: rec {
|
||||||
|
legacyPackages = pkgsForSystem system;
|
||||||
|
packages = utils.lib.flattenTree {
|
||||||
|
inherit (legacyPackages) dbuild;
|
||||||
|
};
|
||||||
|
defaultPackage = legacyPackages.dbuild;
|
||||||
|
});
|
||||||
|
}
|
38
nix/dbuild.nix
Normal file
38
nix/dbuild.nix
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{ lib, stdenv, buildMavenRepositoryFromLockFile
|
||||||
|
, makeWrapper, maven, jdk11_headless
|
||||||
|
, nix-gitignore
|
||||||
|
}:
|
||||||
|
|
||||||
|
|
||||||
|
let
|
||||||
|
mavenRepository = buildMavenRepositoryFromLockFile { file = ./mvn2nix-lock.json; };
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
pname = "dBuild";
|
||||||
|
version = "0.0.1";
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
src = nix-gitignore.gitignoreSource [ "*.nix" ] ./..;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ jdk11_headless maven makeWrapper ];
|
||||||
|
buildPhase = ''
|
||||||
|
echo "Building with maven repository ${mavenRepository}"
|
||||||
|
mvn package --offline -Dmaven.repo.local=${mavenRepository}
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
# create the bin directory
|
||||||
|
mkdir -p $out/bin
|
||||||
|
|
||||||
|
# create a symbolic link for the lib directory
|
||||||
|
ln -s ${mavenRepository} $out/lib
|
||||||
|
|
||||||
|
# copy out the JAR
|
||||||
|
# Maven already setup the classpath to use m2 repository layout
|
||||||
|
# with the prefix of lib/
|
||||||
|
cp target/${name}.jar $out/
|
||||||
|
|
||||||
|
# create a wrapper that will automatically set the classpath
|
||||||
|
# this should be the paths from the dependency derivation
|
||||||
|
makeWrapper ${jdk11_headless}/bin/java $out/bin/${pname} \
|
||||||
|
--add-flags "-jar $out/${name}.jar"
|
||||||
|
'';
|
||||||
|
}
|
1249
nix/mvn2nix-lock.json
Normal file
1249
nix/mvn2nix-lock.json
Normal file
File diff suppressed because it is too large
Load Diff
3
nix/overlay.nix
Normal file
3
nix/overlay.nix
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
final: prev: {
|
||||||
|
dbuild = final.callPackage ./dbuild.nix { };
|
||||||
|
}
|
82
pom.xml
Normal file
82
pom.xml
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>com.zuckerberg.dbuild</groupId>
|
||||||
|
<artifactId>dbuild</artifactId>
|
||||||
|
<version>0.0.1</version>
|
||||||
|
|
||||||
|
<name>dbuild</name>
|
||||||
|
<!-- FIXME change it to the project's website -->
|
||||||
|
<url>https://git.neet.dev/zuckerberg/dbuild</url>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<maven.compiler.source>1.7</maven.compiler.source>
|
||||||
|
<maven.compiler.target>1.7</maven.compiler.target>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>4.11</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
|
||||||
|
<plugins>
|
||||||
|
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-clean-plugin</artifactId>
|
||||||
|
<version>3.1.0</version>
|
||||||
|
</plugin>
|
||||||
|
<!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-resources-plugin</artifactId>
|
||||||
|
<version>3.0.2</version>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>3.8.0</version>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
<version>2.22.1</version>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-jar-plugin</artifactId>
|
||||||
|
<version>3.0.2</version>
|
||||||
|
<configuration>
|
||||||
|
<archive>
|
||||||
|
<manifest>
|
||||||
|
<mainClass>com.zuckerberg.dbuild.Main</mainClass>
|
||||||
|
</manifest>
|
||||||
|
</archive>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-install-plugin</artifactId>
|
||||||
|
<version>2.5.2</version>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-deploy-plugin</artifactId>
|
||||||
|
<version>2.8.2</version>
|
||||||
|
</plugin>
|
||||||
|
<!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-site-plugin</artifactId>
|
||||||
|
<version>3.7.1</version>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-project-info-reports-plugin</artifactId>
|
||||||
|
<version>3.0.0</version>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</pluginManagement>
|
||||||
|
</build>
|
||||||
|
</project>
|
9
src/main/java/com/zuckerberg/dbuild/Main.java
Normal file
9
src/main/java/com/zuckerberg/dbuild/Main.java
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
package com.zuckerberg.dbuild;
|
||||||
|
|
||||||
|
public class Main
|
||||||
|
{
|
||||||
|
public static void main(String[] args)
|
||||||
|
{
|
||||||
|
System.out.println("Hello World!");
|
||||||
|
}
|
||||||
|
}
|
14
src/test/java/com/zuckerberg/dbuild/MainTest.java
Normal file
14
src/test/java/com/zuckerberg/dbuild/MainTest.java
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
package com.zuckerberg.dbuild;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class MainTest
|
||||||
|
{
|
||||||
|
@Test
|
||||||
|
public void shouldAnswerWithTrue()
|
||||||
|
{
|
||||||
|
assertTrue( true );
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user