176 lines
4.1 KiB
Groovy
176 lines
4.1 KiB
Groovy
plugins {
|
|
id 'java'
|
|
id 'maven-publish'
|
|
id 'java-gradle-plugin'
|
|
id 'idea'
|
|
id 'eclipse'
|
|
id 'groovy'
|
|
id 'checkstyle'
|
|
}
|
|
|
|
sourceCompatibility = 1.8
|
|
targetCompatibility = 1.8
|
|
|
|
group = 'net.fabricmc'
|
|
archivesBaseName = project.name
|
|
def baseVersion = '0.5'
|
|
|
|
def build = "local"
|
|
def ENV = System.getenv()
|
|
if (ENV.BUILD_NUMBER) {
|
|
build = "jenkins #${ENV.BUILD_NUMBER}"
|
|
version = baseVersion + "." + ENV.BUILD_NUMBER
|
|
} else {
|
|
version = baseVersion + ".local"
|
|
}
|
|
|
|
repositories {
|
|
maven {
|
|
name = "Fabric"
|
|
url = 'https://maven.fabricmc.net/'
|
|
}
|
|
mavenCentral()
|
|
}
|
|
|
|
dependencies {
|
|
implementation gradleApi()
|
|
|
|
// libraries
|
|
implementation ('commons-io:commons-io:2.6')
|
|
implementation ('org.zeroturnaround:zt-zip:1.13')
|
|
implementation ('com.google.code.gson:gson:2.8.5')
|
|
implementation ('com.google.guava:guava:28.0-jre')
|
|
|
|
// game handling utils
|
|
implementation ('net.fabricmc:stitch:0.4.6+build.74') {
|
|
exclude module: 'enigma'
|
|
}
|
|
|
|
// tinyfile management
|
|
implementation ('net.fabricmc:tiny-remapper:0.3.0.70')
|
|
implementation ('net.fabricmc:tiny-mappings-parser:0.2.2.14')
|
|
|
|
implementation ('net.fabricmc:lorenz-tiny:2.0.0+build.2') {
|
|
transitive = false
|
|
}
|
|
|
|
// decompilers
|
|
implementation ('net.fabricmc:procyon-fabric-compilertools:0.5.35.13')
|
|
implementation ('org.jetbrains:intellij-fernflower:1.2.1.16')
|
|
implementation ('org.benf:cfr:0.150')
|
|
|
|
// source code remapping
|
|
implementation ('org.cadixdev:mercury:0.1.0.fabric-SNAPSHOT')
|
|
|
|
// Kapt integration
|
|
compileOnly("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72")
|
|
|
|
// Testing
|
|
testImplementation(gradleTestKit())
|
|
testImplementation("org.spockframework:spock-core:1.3-groovy-2.4") {
|
|
exclude module: 'groovy-all'
|
|
}
|
|
}
|
|
|
|
jar {
|
|
manifest {
|
|
attributes 'Implementation-Version': version + " Build(" + build + ")"
|
|
}
|
|
}
|
|
|
|
task sourcesJar(type: Jar, dependsOn: classes) {
|
|
classifier = 'sources'
|
|
from sourceSets.main.allSource
|
|
}
|
|
|
|
task javadocJar(type: Jar, dependsOn: javadoc) {
|
|
classifier = 'javadoc'
|
|
from javadoc.destinationDir
|
|
}
|
|
|
|
apply from: 'https://github.com/FabricMC/fabric-docs/raw/master/gradle/license.gradle'
|
|
|
|
license {
|
|
exclude '**/loom/util/DownloadUtil.java'
|
|
}
|
|
|
|
checkstyle {
|
|
configFile = file("checkstyle.xml")
|
|
toolVersion = '8.25'
|
|
}
|
|
|
|
checkstyleMain {
|
|
logging.setLevel(LogLevel.LIFECYCLE)
|
|
}
|
|
|
|
gradlePlugin {
|
|
plugins {
|
|
fabricLoom {
|
|
id = "fabric-loom"
|
|
implementationClass = "net.fabricmc.loom.LoomGradlePlugin"
|
|
}
|
|
}
|
|
}
|
|
|
|
import org.w3c.dom.Document
|
|
import org.w3c.dom.Element
|
|
import org.w3c.dom.Node
|
|
|
|
publishing {
|
|
publications {
|
|
plugin(MavenPublication) { publication ->
|
|
groupId project.group
|
|
artifactId project.archivesBaseName
|
|
version project.version
|
|
|
|
from components["java"]
|
|
|
|
artifact sourcesJar
|
|
artifact javadocJar
|
|
}
|
|
|
|
//Also publish a snapshot so people can use the latest version if they wish
|
|
snapshot(MavenPublication) { publication ->
|
|
groupId project.group
|
|
artifactId project.archivesBaseName
|
|
version baseVersion + "-SNAPSHOT"
|
|
|
|
from components["java"]
|
|
|
|
artifact sourcesJar
|
|
artifact javadocJar
|
|
}
|
|
|
|
//Manually crate the plugin marker for snapshot versions
|
|
snapshotPlugin(MavenPublication) { publication ->
|
|
groupId "fabric-loom"
|
|
artifactId "fabric-loom.gradle.plugin"
|
|
version baseVersion + "-SNAPSHOT"
|
|
|
|
pom.withXml({
|
|
//Based of org.gradle.plugin.devel.plugins.MavenPluginPublishPlugin
|
|
Element root = asElement()
|
|
Document document = root.getOwnerDocument()
|
|
Node dependencies = root.appendChild(document.createElement("dependencies"))
|
|
Node dependency = dependencies.appendChild(document.createElement("dependency"))
|
|
Node groupId = dependency.appendChild(document.createElement("groupId"))
|
|
groupId.setTextContent("net.fabricmc")
|
|
Node artifactId = dependency.appendChild(document.createElement("artifactId"))
|
|
artifactId.setTextContent("fabric-loom")
|
|
Node version = dependency.appendChild(document.createElement("version"))
|
|
version.setTextContent(baseVersion + "-SNAPSHOT")
|
|
})
|
|
}
|
|
}
|
|
repositories {
|
|
maven {
|
|
url "http://mavenupload.modmuss50.me/"
|
|
if (project.hasProperty('mavenPass')) {
|
|
credentials {
|
|
username 'buildslave'
|
|
password project.getProperty('mavenPass')
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |