Produce pom.xml instead of shading deps of deps

This commit is contained in:
Jonas Herzig
2017-10-03 18:00:24 +02:00
parent c07e08386d
commit ba4aaa3654
9 changed files with 74 additions and 121 deletions

View File

@@ -27,8 +27,27 @@ allprojects {
repositories.all convertRepoToHttp
apply plugin: de.johni0702.gradle.ReproducibleBuildsPlugin, to: project
apply plugin: xink.gradle.ecj.EcjPlugin, to: project
apply plugin: 'maven', to: project
ecj {
warn = ['none']
}
repositories {
maven {
url(project.file('gradle/reprod').exists() ? 'gradle/reprod/deps/repo' : '../repo')
}
}
task createPom {
doLast {
pom {
project {
groupId 'reprod'
artifactId project.file('.').name
version '0'
}
}.writeTo("pom.xml")
}
}
build.dependsOn createPom
}

View File

@@ -1,57 +0,0 @@
From 130d406cbe105303f9b14c342f02fc9a20782e32 Mon Sep 17 00:00:00 2001
From: Jonas Herzig <me@johni0702.de>
Date: Mon, 7 Aug 2017 19:54:54 +0200
Subject: [PATCH 4/5] Shade all the things (because we don't include deps as
maven deps)
---
build.gradle | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/build.gradle b/build.gradle
index 8959f8f..0bf7941 100644
--- a/build.gradle
+++ b/build.gradle
@@ -62,26 +62,26 @@ dependencies {
compile gradleApi()
// moved to the beginning to be the overrider
- compile 'org.ow2.asm:asm-debug-all:5.0.3'
- compile 'com.google.guava:guava:18.0'
+ shade 'org.ow2.asm:asm-debug-all:5.0.3'
+ shade 'com.google.guava:guava:18.0'
- compile 'net.sf.opencsv:opencsv:2.3' // reading CSVs.. also used by SpecialSource
- compile 'com.cloudbees:diff4j:1.1' // for difing and patching
- compile 'com.github.abrarsyed.jastyle:jAstyle:1.3' // formatting
- compile 'net.sf.trove4j:trove4j:2.1.0' // because its awesome.
+ shade 'net.sf.opencsv:opencsv:2.3' // reading CSVs.. also used by SpecialSource
+ shade 'com.cloudbees:diff4j:1.1' // for difing and patching
+ shade 'com.github.abrarsyed.jastyle:jAstyle:1.3' // formatting
+ shade 'net.sf.trove4j:trove4j:2.1.0' // because its awesome.
- compile 'com.github.jponge:lzma-java:1.3' // replaces the LZMA binary
- compile 'com.nothome:javaxdelta:2.0.1' // GDIFF implementation for BinPatches
- compile 'com.google.code.gson:gson:2.2.4' // Used instead of Argo for buuilding changelog.
- compile 'com.github.tony19:named-regexp:0.2.3' // 1.7 Named regexp features
- compile 'net.minecraftforge:fernflower:2.0-SNAPSHOT' // Fernflower Forge edition
+ shade 'com.github.jponge:lzma-java:1.3' // replaces the LZMA binary
+ shade 'com.nothome:javaxdelta:2.0.1' // GDIFF implementation for BinPatches
+ shade 'com.google.code.gson:gson:2.2.4' // Used instead of Argo for buuilding changelog.
+ shade 'com.github.tony19:named-regexp:0.2.3' // 1.7 Named regexp features
+ shade 'net.minecraftforge:fernflower:2.0-SNAPSHOT' // Fernflower Forge edition
shade 'net.md-5:SpecialSource:1.7.4' // deobf and reobs
// compile 'net.md-5:SpecialSource:1.7.4' // when md5 publishes
// because curse
- compile 'org.apache.httpcomponents:httpclient:4.3.3'
- compile 'org.apache.httpcomponents:httpmime:4.3.3'
+ shade 'org.apache.httpcomponents:httpclient:4.3.3'
+ shade 'org.apache.httpcomponents:httpmime:4.3.3'
// mcp stuff
shade 'de.oceanlabs.mcp:RetroGuard:3.6.6'
--
2.5.5

View File

@@ -12,11 +12,11 @@ index bfadecd..774a015 100644
--- a/build.gradle
+++ b/build.gradle
@@ -67,7 +67,7 @@ dependencies {
shade 'com.nothome:javaxdelta:2.0.1' // GDIFF implementation for BinPatches
shade 'com.google.code.gson:gson:2.2.4' // Used instead of Argo for buuilding changelog.
shade 'com.github.tony19:named-regexp:0.2.3' // 1.7 Named regexp features
- shade 'net.minecraftforge:fernflower:2.0-SNAPSHOT' // Fernflower Forge edition
+ shade files('../forgeflower.jar') // Fernflower Forge edition
compile 'com.nothome:javaxdelta:2.0.1' // GDIFF implementation for BinPatches
compile 'com.google.code.gson:gson:2.2.4' // Used instead of Argo for buuilding changelog.
compile 'com.github.tony19:named-regexp:0.2.3' // 1.7 Named regexp features
- compile 'net.minecraftforge:fernflower:2.0-SNAPSHOT' // Fernflower Forge edition
+ compile 'reprod:forgeflower:0' // Fernflower Forge edition
shade 'net.md-5:SpecialSource:1.7.4' // deobf and reobs
// compile 'net.md-5:SpecialSource:1.7.4' // when md5 publishes
@@ -26,8 +26,8 @@ index bfadecd..774a015 100644
shade 'de.oceanlabs.mcp:RetroGuard:3.6.6'
- shade 'de.oceanlabs.mcp:mcinjector:3.4-SNAPSHOT'
- shade 'net.minecraftforge.srg2source:Srg2Source:3.3-SNAPSHOT'
+ shade files('../mcinjector.jar')
+ shade files('../srg2source.jar')
+ shade 'reprod:mcinjector:0'
+ shade 'reprod:srg2source:0'
//Stuff used in the GradleStart classes
compileOnly 'com.mojang:authlib:1.5.16'

View File

@@ -27,11 +27,10 @@ index 2e5f949..b6c63bb 100644
apply plugin: 'maven'
group = 'de.oceanlabs.mcp'
@@ -22,93 +12,13 @@ repositories {
@@ -22,93 +12,12 @@ repositories {
}
jar {
+ from ({files(configurations.compile).collect {it.isDirectory() ? filesTree(it) : zipTree(it)}})
manifest.attributes('Main-Class': 'de.oceanlabs.mcp.mcinjector.MCInjector')
}
-fatJar {

View File

@@ -17,8 +17,8 @@ index f8598a3..e9a965b 100644
fernflowerCompile 'com.google.guava:guava:17.0'
- fernflowerCompile 'org.jetbrains.java.decompiler:fernflower:sponge-SNAPSHOT'
- compile 'org.jetbrains.java.decompiler:fernflower:sponge-SNAPSHOT'
+ fernflowerCompile files('../fernflower.jar')
+ compile files('../fernflower.jar')
+ fernflowerCompile 'reprod:fernflower:0'
+ compile 'reprod:fernflower:0'
compile('net.minecraft:launchwrapper:1.11') {
exclude module: 'lwjgl'

View File

@@ -11,12 +11,12 @@ diff --git a/build.gradle b/build.gradle
index ee24828..42d0607 100755
--- a/build.gradle
+++ b/build.gradle
@@ -1,24 +1,9 @@
@@ -1,24 +1,17 @@
import groovy.json.JsonOutput
buildscript {
- repositories {
- mavenCentral()
repositories {
mavenCentral()
- maven {
- name = "forge"
- url = "http://files.minecraftforge.net/maven"
@@ -25,16 +25,17 @@ index ee24828..42d0607 100755
- name = "sponge"
- url = "https://repo.spongepowered.org/maven"
- }
- maven {
- name = "sonatype"
- url = "https://oss.sonatype.org/content/repositories/snapshots/"
- }
- }
maven {
name = "sonatype"
url = "https://oss.sonatype.org/content/repositories/snapshots/"
}
+ maven { url 'gradle/reprod/deps/repo' }
}
dependencies {
- classpath 'net.minecraftforge.gradle:ForgeGradle:2.0-SNAPSHOT'
- classpath 'org.spongepowered:mixingradle:0.3-SNAPSHOT'
+ classpath files('gradle/reprod/deps/forgegradle.jar')
+ classpath files('gradle/reprod/deps/mixingradle.jar')
+ classpath 'reprod:forgegradle:0'
+ classpath 'reprod:mixingradle:0'
}
}

View File

@@ -16,7 +16,7 @@ index 42d0607..bfa3914 100755
compile 'org.projectlombok:lombok:1.16.4'
- compile 'org.spongepowered:mixin:0.6.8-SNAPSHOT'
+ shade files('gradle/reprod/deps/mixin.jar')
+ compile 'reprod:mixin:0'
shade 'com.googlecode.mp4parser:isoparser:1.1.7'
shade 'org.apache.commons:commons-exec:1.3'
shade 'com.google.apis:google-api-services-youtube:v3-rev178-1.22.0'

View File

@@ -1,25 +0,0 @@
From 7266eb65165cfe18ea21a3c183da4efc37ff54cf Mon Sep 17 00:00:00 2001
From: Jonas Herzig <me@johni0702.de>
Date: Sat, 26 Aug 2017 17:46:46 +0200
Subject: [PATCH] Manually shade deps
---
build.gradle | 2 ++
1 file changed, 2 insertions(+)
diff --git a/build.gradle b/build.gradle
index eefeafe..368f6be 100644
--- a/build.gradle
+++ b/build.gradle
@@ -61,6 +61,8 @@ jar {
}
jar {
+ duplicatesStrategy = DuplicatesStrategy.EXCLUDE
+ from (files(configurations.compile).collect {it.isDirectory() ? filesTree(it) : zipTree(it)})
exclude 'data/**'
}
--
2.5.5

View File

@@ -19,18 +19,25 @@ setup_dep () {
commit=$3
jar=$4
jarhash=$5
pomhash=$6
[ -f "deps/$dep.jar" ] && [ "$(sha256val "deps/$dep.jar")" == "$jarhash" ] && return
[ -f "deps/$dep.jar" ] && [ "*" == "$jarhash" ] && return
rm -rf "deps/$dep.jar"
depjar="deps/repo/reprod/$dep/0/$dep-0.jar"
deppom="deps/repo/reprod/$dep/0/$dep-0.pom"
[ -f "$depjar" ] && [ "$(sha256val "$depjar")" == "$jarhash" ] && [ -f "$deppom" ] && [ "$(sha256val "$deppom")" == "$pomhash" ] && return
[ -f "$depjar" ] && [ "*" == "$jarhash" ] && return
rm -rf "$depjar" "$deppom"
mkdir -p "deps/repo/reprod/$dep/0"
if [ "*" != "$jarhash" ] && [ "$OFFLINE" != "1" ]; then
# Try to fetch the pre-built artifact
if wget -O "deps/dl.tmp" "https://www.johni0702.de/replaymod/artifact/$jarhash"; then
# Verify downloaded jar file
if [ "$(sha256val "deps/dl.tmp")" == "$jarhash" ]; then
if wget -O "deps/dl.jar" "https://www.johni0702.de/replaymod/artifact/$jarhash" && wget -O "deps/dl.pom" "https://www.johni0702.de/replaymod/artifact/$pomhash"; then
# Verify downloaded jar/pom files
if [ "$(sha256val "deps/dl.jar")" == "$jarhash" ] && [ "$(sha256val "deps/dl.pom")" == "$pomhash" ]; then
# Got valid pre-built artifact, use it
mv "deps/dl.tmp" "deps/$dep.jar"
mv "deps/dl.jar" "$depjar"
mv "deps/dl.pom" "$deppom"
return
fi
fi
@@ -75,29 +82,38 @@ setup_dep () {
exit 1
fi
actual_hash=$(sha256val "pom.xml")
if [ "*" != "$jarhash" ] && [ "$actual_hash" != "$pomhash" ]; then
echo "Failed to verify checksum of build artifact pom of dependency: $dep"
echo "Expected: $pomhash"
echo "But was: $actual_hash"
exit 1
fi
# Subshell to allow for expansion of *
cp "$(echo $jar)" "../$dep.jar"
cp "$(echo $jar)" "../../$depjar"
[ "$dep" == "proxy-witness" ] || cp "pom.xml" "../../$deppom"
popd
}
# Setup http(s) proxy
setup_dep "proxy-witness" "https://github.com/johni0702/proxy-witness" "17ebb2e22f812faed9a28bae6bf1d8b28f798d56" "build/libs/proxy-witness.jar" "*"
java -Dproxywitness.httpUris=http://export.mcpbot.bspk.rs/versions.json -jar deps/proxy-witness.jar "$PROXY_PORT" checksums.txt > proxy.log 2>&1 &
setup_dep "proxy-witness" "https://github.com/johni0702/proxy-witness" "17ebb2e22f812faed9a28bae6bf1d8b28f798d56" "build/libs/proxy-witness.jar" "*" "*"
java -Dproxywitness.httpUris=http://export.mcpbot.bspk.rs/versions.json -jar deps/repo/reprod/proxy-witness/0/proxy-witness-0.jar "$PROXY_PORT" checksums.txt > proxy.log 2>&1 &
proxy_pid=$!
trap "kill $proxy_pid" EXIT
# Required for mixin
setup_dep "fernflower" "https://github.com/fesh0r/fernflower.git" "85f61bee8194ab69afa746b965973a18eda67608" "build/libs/fernflower.jar" "b69597c93e248073330da4532a857aad73b767d46f87a0aa66446fbea289ff93"
setup_dep "fernflower" "https://github.com/fesh0r/fernflower.git" "85f61bee8194ab69afa746b965973a18eda67608" "build/libs/fernflower.jar" "b69597c93e248073330da4532a857aad73b767d46f87a0aa66446fbea289ff93" "901b8a76ceb15db97d4dd19c5e8fcb0fc226ae602ef38ea906eb5258be9b929a"
# Required for forgegradle
setup_dep "forgeflower" "https://github.com/MinecraftForge/FernFlowerLegacy.git" "114aebe82cf40075c5c4f916c409b8aebf8096d5" "build/libs/fernflower-2.0-SNAPSHOT.jar" "c8b4a4a13a1158008aed46da2c805184078324718697f14a67f1778168579956"
setup_dep "mcinjector" "https://github.com/ModCoderPack/MCInjector.git" "7258466461baf7dc4f313b06b0d589407e4e1fba" "build/libs/mcinjector-3.4-SNAPSHOT.jar" "f88dbfb66f2bfe0fa9f18dfc8691573d0f462040e7907beb6d9d6b1175d98a92"
setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "5f11e2933f722000dbf742ffdd0d9c5ee8044bbb" "build/libs/Srg2Source-3.3-SNAPSHOT.jar" "82b380a3f8cb0184b75bc474ed4d0cae1586f70e6d2a2c16f025f4452374dcc2"
setup_dep "forgeflower" "https://github.com/MinecraftForge/FernFlowerLegacy.git" "114aebe82cf40075c5c4f916c409b8aebf8096d5" "build/libs/fernflower-2.0-SNAPSHOT.jar" "c8b4a4a13a1158008aed46da2c805184078324718697f14a67f1778168579956" "fbda3f30d54624fe4c59a69e145b644d8642afc0dd4eb0d732ccdaa0ebd5d8a3"
setup_dep "mcinjector" "https://github.com/ModCoderPack/MCInjector.git" "7258466461baf7dc4f313b06b0d589407e4e1fba" "build/libs/mcinjector-3.4-SNAPSHOT.jar" "98b685ea0d3ae9fad8b8a7e7b885512f7fe0b61becf27d9c74b91a626d107efc" "3c08655c11e6509bfc62ff87d0770cefa0ecbd8dccece9e083c9b7b89779a8c5"
setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "5f11e2933f722000dbf742ffdd0d9c5ee8044bbb" "build/libs/Srg2Source-3.3-SNAPSHOT.jar" "9aa601ade2c33ce52fe09894efd4c1bb69c68a238c2dd260605881863083362e" "cbfdd113cd054b80ce3a1e5636d254fea4f59a82af9874ae9f3786cb1901920d"
# Required for RM
setup_dep "mixingradle" "https://github.com/SpongePowered/MixinGradle.git" "52217aa8ca221dcd0b9fb657b037e663db808f38" "build/libs/mixingradle-0.4-SNAPSHOT.jar" "8b3508867128a5d564631635dff898a36f9aca8db54b7bb3af6f4924e3f4bead"
setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "17806f45d20d0b55bff70a616eaeb939bd6a543c" "build/libs/ForgeGradle-2.1-SNAPSHOT.jar" "400f0ca3adf6a129926ec5d3af5495258ad6ec0f7951ba3b25c10ced211bc1b2"
setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "b558323da3bd6ce94aeb442bfd7357f6c40d2fd4" "build/libs/mixin-0.6.11-SNAPSHOT.jar" "cb446b614ce34372fc2084de9bb16adc3182a6e96120fdb4bcae561e41303694"
setup_dep "mixingradle" "https://github.com/SpongePowered/MixinGradle.git" "52217aa8ca221dcd0b9fb657b037e663db808f38" "build/libs/mixingradle-0.4-SNAPSHOT.jar" "8b3508867128a5d564631635dff898a36f9aca8db54b7bb3af6f4924e3f4bead" "42cbf81136d4e26c06d3234427665b50d18768cc1f210512204ca1d5e3a42b5c"
setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "17806f45d20d0b55bff70a616eaeb939bd6a543c" "build/libs/ForgeGradle-2.1-SNAPSHOT.jar" "8e60c5da202cdc7843cff956a23093fbd3f9e6061d925daefcf9cdaa6116ebd4" "4c670a05fbd9aeaa581ae8ba7597df1d1def7b04160e1c6b076ed6778dd45e58"
setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "b558323da3bd6ce94aeb442bfd7357f6c40d2fd4" "build/libs/mixin-0.6.11-SNAPSHOT.jar" "cb446b614ce34372fc2084de9bb16adc3182a6e96120fdb4bcae561e41303694" "a2f59b03529fed676b64ed4f57fff16bfe27f7131c216f69308ca4d2b6e8e754"
rm -rf tmp
mkdir tmp