fabric-loom/build.gradle

186 lines
4.2 KiB
Groovy
Raw Normal View History

plugins {
id 'java'
id 'maven-publish'
id 'java-gradle-plugin'
id 'idea'
id 'eclipse'
id 'groovy'
id 'checkstyle'
2016-08-15 10:22:14 +00:00
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
2018-10-22 18:25:18 +00:00
group = 'net.fabricmc'
2018-05-11 20:57:42 +00:00
archivesBaseName = project.name
def baseVersion = '0.4'
2018-11-03 18:03:43 +00:00
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"
2018-11-03 18:03:43 +00:00
}
2016-08-15 10:22:14 +00:00
repositories {
2016-08-21 15:11:03 +00:00
maven {
2018-12-09 07:21:32 +00:00
name = "Fabric"
url = 'https://maven.fabricmc.net/'
2016-08-21 15:11:03 +00:00
}
2020-04-11 18:28:48 +00:00
mavenCentral()
2016-08-15 10:22:14 +00:00
}
dependencies {
implementation gradleApi()
2018-10-22 18:53:07 +00:00
// libraries
implementation ('commons-io:commons-io:2.6')
implementation ('org.zeroturnaround:zt-zip:1.13')
implementation ('com.google.code.gson:gson:2.8.5')
2019-06-20 13:25:40 +00:00
implementation ('com.google.guava:guava:28.0-jre')
// game handling utils
implementation ('net.fabricmc:stitch:0.4.6+build.74') {
2019-02-12 19:32:42 +00:00
exclude module: 'enigma'
}
// tinyfile management
implementation ('net.fabricmc:tiny-remapper:0.3.0.70') {
transitive = false
}
2018-12-18 22:36:22 +00:00
2020-05-27 15:41:43 +00:00
implementation ('net.fabricmc:lorenz-tiny:2.0.0+build.2') {
transitive = false
}
// decompilers
2020-04-11 18:28:48 +00:00
implementation ('net.fabricmc:procyon-fabric-compilertools:0.5.35.13')
implementation ('org.jetbrains:intellij-fernflower:1.2.0.15')
// source code remapping
2018-12-22 16:08:34 +00:00
implementation ('org.cadixdev:mercury:0.1.0.fabric-SNAPSHOT')
2018-12-18 22:36:22 +00:00
// 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")
2016-08-15 10:22:14 +00:00
}
configurations.all {
resolutionStrategy {
force 'org.codehaus.groovy:groovy-all:2.4.12'
}
}
2016-08-15 10:22:14 +00:00
jar {
2018-11-03 18:03:43 +00:00
manifest {
2018-11-05 10:57:29 +00:00
attributes 'Implementation-Version': version + " Build(" + build + ")"
2018-11-03 18:03:43 +00:00
}
2016-08-15 10:22:14 +00:00
}
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
2018-10-27 14:14:05 +00:00
apply from: 'https://github.com/FabricMC/fabric-docs/raw/master/gradle/license.gradle'
2019-04-19 19:56:58 +00:00
license {
exclude '**/loom/util/DownloadUtil.java'
}
checkstyle {
configFile = file("checkstyle.xml")
toolVersion = '8.25'
}
checkstyleMain {
logging.setLevel(LogLevel.LIFECYCLE)
}
gradlePlugin {
plugins {
2019-07-24 21:10:13 +00:00
fabricLoom {
id = "fabric-loom"
implementationClass = "net.fabricmc.loom.LoomGradlePlugin"
}
}
2018-05-14 10:50:02 +00:00
}
import org.w3c.dom.Document
import org.w3c.dom.Element
import org.w3c.dom.Node
2018-05-14 10:50:02 +00:00
publishing {
publications {
plugin(MavenPublication) { publication ->
2018-08-10 17:15:05 +00:00
groupId project.group
2018-05-14 10:50:02 +00:00
artifactId project.archivesBaseName
version project.version
from components["java"]
artifact sourcesJar
artifact javadocJar
2018-05-14 10:50:02 +00:00
}
//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")
})
}
2018-05-14 10:50:02 +00:00
}
repositories {
maven {
url "http://mavenupload.modmuss50.me/"
if (project.hasProperty('mavenPass')) {
credentials {
username 'buildslave'
password project.getProperty('mavenPass')
}
}
}
}
2018-11-03 15:38:19 +00:00
}
2019-11-09 19:00:36 +00:00
configurations.all {
resolutionStrategy {
force 'org.codehaus.groovy:groovy-all:2.4.12'
}
}