Prepare Sponge for Project Unify. Closes #557.
Split build script into a common purpose build script.
This commit is contained in:
1 parent
ec7dff4ae3
commit
4365dbb5eb
11 files changed
+228
-199
No files matched your search
@@ -1,6 +1,12 @@
|
||||
# Normalize as LF in the repository, OS native locally
|
||||
* text=auto
|
||||
|
||||
*.bat text eol=crlf
|
||||
gradlew text eol=lf
|
||||
*.sh text eol=lf
|
||||
|
||||
*.java text
|
||||
*.java diff=java
|
||||
|
||||
# Binary files that should not be modified
|
||||
*.dat binary
|
||||
|
||||
+4
-1
@@ -1,12 +1,15 @@
|
||||
sudo: false
|
||||
|
||||
language: java
|
||||
jdk:
|
||||
- openjdk6
|
||||
- openjdk7
|
||||
- oraclejdk7
|
||||
- oraclejdk8
|
||||
|
||||
env: GRADLE_OPTS="-Xms1g -Xmx3g"
|
||||
install: true
|
||||
script: gradle build
|
||||
script: ./gradlew build
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
This file is part of Sponge, licensed under the MIT License (MIT).
|
||||
This file is part of ${name}, licensed under the MIT License (MIT).
|
||||
|
||||
Copyright (c) SpongePowered.org <http://www.spongepowered.org>
|
||||
Copyright (c) ${organization} <${url}>
|
||||
Copyright (c) contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
@@ -19,4 +19,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
THE SOFTWARE.
|
||||
+6
-186
@@ -1,58 +1,17 @@
|
||||
// Gradle repositories and dependencies
|
||||
buildscript {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
jcenter()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'nl.javadude.gradle.plugins:license-gradle-plugin:0.11.0'
|
||||
}
|
||||
}
|
||||
|
||||
// Apply plugin
|
||||
apply plugin: 'java'
|
||||
apply plugin: 'license'
|
||||
apply plugin: 'checkstyle'
|
||||
apply plugin: 'maven'
|
||||
apply plugin: 'eclipse'
|
||||
apply plugin: 'idea'
|
||||
|
||||
// Default tasks
|
||||
defaultTasks 'licenseFormat', 'check', 'build'
|
||||
|
||||
// Basic project information
|
||||
group = 'org.spongepowered'
|
||||
archivesBaseName = 'spongeapi'
|
||||
version = '1.1-SNAPSHOT'
|
||||
|
||||
// Extended project information
|
||||
ext.projectName = 'SpongeAPI'
|
||||
ext.inceptionYear = '2014'
|
||||
ext.packaging = 'jar'
|
||||
ext.url = 'http://spongepowered.org'
|
||||
ext.description = 'SpongeAPI'
|
||||
ext.organization = 'SpongePowered'
|
||||
|
||||
// Define variables
|
||||
ext.buildNumber = project.hasProperty("buildNumber") ? buildNumber : '0'
|
||||
ext.ciSystem = project.hasProperty("ciSystem") ? ciSystem : 'unknown'
|
||||
ext.commit = project.hasProperty("commit") ? commit : 'unknown'
|
||||
|
||||
// Minimum version of Java required
|
||||
sourceCompatibility = '1.6'
|
||||
targetCompatibility = '1.6'
|
||||
|
||||
// Project repositories
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
||||
// Add Sponge repo for custom checkstyle implementation to fix some wrong warnings
|
||||
maven { url 'http://repo.spongepowered.org/maven' }
|
||||
}
|
||||
|
||||
configurations {
|
||||
deployerJars // maven stuff
|
||||
}
|
||||
ext.api = project
|
||||
apply from: 'gradle/java.gradle'
|
||||
|
||||
// Project dependencies
|
||||
dependencies {
|
||||
@@ -63,150 +22,11 @@ dependencies {
|
||||
compile 'ninja.leaping.configurate:configurate-hocon:1.1'
|
||||
compile 'com.flowpowered:flow-math:1.0.0'
|
||||
compile 'org.ow2.asm:asm:5.0.3'
|
||||
testCompile 'junit:junit:4.11'
|
||||
testCompile 'org.hamcrest:hamcrest-library:1.3'
|
||||
testCompile 'org.mockito:mockito-core:1.9.0'
|
||||
|
||||
checkstyle 'org.spongepowered:checkstyle:6.1.1-sponge1'
|
||||
|
||||
// maven
|
||||
deployerJars 'org.apache.maven.wagon:wagon-ftp:2.7'
|
||||
}
|
||||
|
||||
// Filter, process, and include resources
|
||||
processResources {
|
||||
// Include in final JAR
|
||||
from 'LICENSE.txt'
|
||||
}
|
||||
|
||||
// License header formatting
|
||||
license {
|
||||
ext.name = project.name
|
||||
ext.organization = project.organization
|
||||
ext.url = project.url
|
||||
ext.year = project.inceptionYear
|
||||
exclude "**/*.info"
|
||||
exclude "assets/**"
|
||||
header file('HEADER.txt')
|
||||
sourceSets = project.sourceSets
|
||||
ignoreFailures false
|
||||
strictCheck true
|
||||
mapping {
|
||||
java = 'SLASHSTAR_STYLE'
|
||||
}
|
||||
}
|
||||
|
||||
test {
|
||||
testLogging {
|
||||
exceptionFormat = 'full'
|
||||
}
|
||||
}
|
||||
|
||||
checkstyle {
|
||||
configFile = file('checkstyle.xml')
|
||||
configProperties = [
|
||||
"name": project.name,
|
||||
"organization": project.organization,
|
||||
"url": project.url,
|
||||
"year": project.inceptionYear,
|
||||
"basedir": project.projectDir,
|
||||
"severity": 'warning'
|
||||
]
|
||||
}
|
||||
|
||||
// Source compiler configuration
|
||||
configure([compileJava, compileTestJava]) {
|
||||
options.compilerArgs += ['-Xlint:all', '-Xlint:-path']
|
||||
options.deprecation = true
|
||||
options.encoding = 'utf8'
|
||||
}
|
||||
|
||||
javadoc {
|
||||
options.jFlags('-Xms256m', '-Xmx512m')
|
||||
options.links("http://docs.guava-libraries.googlecode.com/git-history/v17.0/javadoc/",
|
||||
"http://google.github.io/guice/api-docs/latest/javadoc/",
|
||||
"http://flowpowered.com/math/",
|
||||
"http://asm.ow2.org/asm50/javadoc/user/",
|
||||
"http://www.slf4j.org/apidocs/",
|
||||
"http://docs.oracle.com/javase/6/docs/api/")
|
||||
}
|
||||
|
||||
if (JavaVersion.current().isJava8Compatible()) {
|
||||
tasks.withType(Javadoc) {
|
||||
// disable the crazy super-strict doclint tool in Java 8
|
||||
options.addStringOption('Xdoclint:none', '-quiet')
|
||||
}
|
||||
}
|
||||
|
||||
// JAR manifest configuration
|
||||
jar.manifest.mainAttributes(
|
||||
"Built-By": System.properties['user.name'],
|
||||
"Created-By": System.properties['java.vm.version'] + " (" + System.properties['java.vm.vendor'] + ")",
|
||||
"Implementation-Title": name,
|
||||
"Implementation-Version": version + "+" + ciSystem + "-b" + buildNumber + ".git-" + commit,
|
||||
"Implementation-Vendor": url,
|
||||
"Main-Class": "org.spongepowered.api.util.InformativeMain")
|
||||
|
||||
task sourceJar(type: Jar) {
|
||||
from sourceSets.main.java
|
||||
from sourceSets.main.resources
|
||||
classifier = "sources"
|
||||
}
|
||||
|
||||
task javadocJar(type: Jar, dependsOn: javadoc) {
|
||||
from javadoc.destinationDir
|
||||
classifier = "javadoc"
|
||||
}
|
||||
|
||||
artifacts {
|
||||
archives jar
|
||||
archives sourceJar
|
||||
archives javadocJar
|
||||
}
|
||||
|
||||
uploadArchives {
|
||||
repositories {
|
||||
|
||||
mavenDeployer {
|
||||
configuration = configurations.deployerJars
|
||||
|
||||
if (project.hasProperty("chRepo"))
|
||||
{
|
||||
repository(url: project.chRepo) {
|
||||
authentication(userName: project.chUsername, password: project.chPassword)
|
||||
}
|
||||
}
|
||||
|
||||
pom {
|
||||
groupId = project.group
|
||||
version = project.version
|
||||
artifactId = project.archivesBaseName
|
||||
project {
|
||||
name project.archivesBaseName
|
||||
packaging 'jar'
|
||||
description 'Sponge API'
|
||||
url 'http://www.spongepowered.org/'
|
||||
|
||||
scm {
|
||||
url 'https://github.com/SpongePowered/SpongeAPI'
|
||||
connection 'scm:git:git://github.com/SpongePowered/SpongeAPI.git'
|
||||
developerConnection 'scm:git:git@github.com:SpongePowered/SpongeAPI.git'
|
||||
}
|
||||
|
||||
issueManagement {
|
||||
system 'youtrack'
|
||||
url 'https://issues.spongepowered.org/'
|
||||
}
|
||||
|
||||
licenses {
|
||||
license {
|
||||
name 'MIT license'
|
||||
url 'http://opensource.org/licenses/MIT'
|
||||
distribution 'repo'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
jar {
|
||||
manifest {
|
||||
attributes('Main-Class': 'org.spongepowered.api.util.InformativeMain')
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -220,7 +220,7 @@
|
||||
|
||||
<module name="NewlineAtEndOfFile"/>
|
||||
<module name="SuppressionFilter">
|
||||
<property name="file" value="${basedir}/checkstyle-suppressions.xml"/>
|
||||
<property name="file" value="${suppressions}"/>
|
||||
</module>
|
||||
|
||||
<property name="basedir" value="${basedir}"/>
|
||||
|
||||
+3
-5
@@ -1,6 +1,4 @@
|
||||
theName=SpongeAPI
|
||||
inceptionYear=2014
|
||||
packaging=jar
|
||||
url=http://spongepowered.org
|
||||
description=SpongeAPI
|
||||
name=SpongeAPI
|
||||
description=A Minecraft plugin API
|
||||
url=https://www.spongepowered.org
|
||||
organization=SpongePowered
|
||||
@@ -0,0 +1,61 @@
|
||||
apply plugin: 'maven'
|
||||
|
||||
ext {
|
||||
buildNumber = System.getenv().BUILD_NUMBER != null ? System.getenv().BUILD_NUMBER : '0'
|
||||
ciSystem = System.getenv().ciSystem != null ? System.getenv().ciSystem : 'unknown'
|
||||
commit = System.getenv().commit != null ? System.getenv().commit : 'unknown'
|
||||
}
|
||||
|
||||
configurations {
|
||||
deployerJars // Deployment dependency
|
||||
}
|
||||
|
||||
dependencies {
|
||||
deployerJars 'org.apache.maven.wagon:wagon-ftp:2.8'
|
||||
}
|
||||
|
||||
uploadArchives {
|
||||
repositories {
|
||||
mavenDeployer {
|
||||
configuration = configurations.deployerJars
|
||||
|
||||
if (project.hasProperty('chRepo')) {
|
||||
repository(url: project.chRepo) {
|
||||
authentication(userName: project.chUsername, password: project.chPassword)
|
||||
}
|
||||
}
|
||||
|
||||
pom {
|
||||
groupId = project.group
|
||||
artifactId = project.archivesBaseName
|
||||
version = project.version
|
||||
|
||||
project {
|
||||
name project.archivesBaseName
|
||||
description project.description
|
||||
packaging 'jar'
|
||||
url project.url
|
||||
|
||||
scm {
|
||||
url "https://github.com/$project.organization/$project.name"
|
||||
connection "scm:git:https://github.com/$project.organization/${project.name}.git"
|
||||
developerConnection "scm:git:git@github.com:$project.organization/${project.name}.git"
|
||||
}
|
||||
|
||||
issueManagement {
|
||||
system 'youtrack'
|
||||
url 'https://issues.spongepowered.org'
|
||||
}
|
||||
|
||||
licenses {
|
||||
license {
|
||||
name 'MIT License'
|
||||
url 'http://opensource.org/licenses/MIT'
|
||||
distribution 'repo'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
apply plugin: 'java'
|
||||
apply plugin: 'eclipse'
|
||||
apply plugin: 'idea'
|
||||
|
||||
defaultTasks 'licenseFormat', 'build'
|
||||
|
||||
group = 'org.spongepowered'
|
||||
archivesBaseName = project.name.toLowerCase()
|
||||
|
||||
// Java version
|
||||
sourceCompatibility = '1.6'
|
||||
targetCompatibility = '1.6'
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven {
|
||||
name = 'sponge'
|
||||
url = 'http://repo.spongepowered.org/maven'
|
||||
}
|
||||
}
|
||||
|
||||
// Testing dependencies
|
||||
dependencies {
|
||||
testCompile 'junit:junit:4.12'
|
||||
testCompile 'org.hamcrest:hamcrest-library:1.3'
|
||||
testCompile 'org.mockito:mockito-core:1.10.19'
|
||||
}
|
||||
|
||||
// Source compiler configuration
|
||||
configure([compileJava, compileTestJava]) {
|
||||
options.compilerArgs += ['-Xlint:all', '-Xlint:-path']
|
||||
options.deprecation = true
|
||||
options.encoding = 'UTF-8'
|
||||
}
|
||||
|
||||
test {
|
||||
testLogging {
|
||||
exceptionFormat = 'full'
|
||||
}
|
||||
}
|
||||
|
||||
// Set manifest entries
|
||||
jar {
|
||||
manifest {
|
||||
attributes(
|
||||
'Built-By': System.properties['user.name'],
|
||||
'Created-By': "${System.properties['java.vm.version']} (${System.properties['java.vm.vendor']})",
|
||||
'Implementation-Name': project.name,
|
||||
'Implementation-Version': project.version,
|
||||
'Implementation-Vendor': project.url
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
javadoc {
|
||||
options.encoding = 'UTF-8'
|
||||
options.charSet = 'UTF-8'
|
||||
options.jFlags('-Xms256m', '-Xmx512m')
|
||||
options.links(
|
||||
'http://www.slf4j.org/apidocs/',
|
||||
'http://docs.guava-libraries.googlecode.com/git-history/v17.0/javadoc/',
|
||||
'http://google.github.io/guice/api-docs/latest/javadoc/',
|
||||
/*'http://zachsthings.com/configurate/configurate-core/apidocs/',
|
||||
'http://zachsthings.com/configurate/configurate-hocon/apidocs/',*/
|
||||
'http://flowpowered.com/math/',
|
||||
'http://asm.ow2.org/asm50/javadoc/user/',
|
||||
'http://docs.oracle.com/javase/6/docs/api/'
|
||||
)
|
||||
}
|
||||
|
||||
if (JavaVersion.current().isJava8Compatible()) {
|
||||
tasks.withType(Javadoc) {
|
||||
// Disable the crazy super-strict doclint tool in Java 8
|
||||
options.addStringOption('Xdoclint:none', '-quiet')
|
||||
}
|
||||
}
|
||||
|
||||
task sourceJar(type: Jar) {
|
||||
classifier = 'sources'
|
||||
from sourceSets.main.allSource
|
||||
}
|
||||
|
||||
task javadocJar(type: Jar, dependsOn: javadoc) {
|
||||
classifier = 'javadoc'
|
||||
from javadoc.destinationDir
|
||||
}
|
||||
|
||||
artifacts {
|
||||
archives sourceJar
|
||||
archives javadocJar
|
||||
}
|
||||
|
||||
// Apply code style plugins
|
||||
apply plugin: 'license'
|
||||
apply plugin: 'checkstyle'
|
||||
|
||||
// License header formatting
|
||||
license {
|
||||
ext {
|
||||
name = project.name
|
||||
organization = project.organization
|
||||
url = project.url
|
||||
}
|
||||
|
||||
header api.file('HEADER.txt')
|
||||
include '**/*.java'
|
||||
|
||||
ignoreFailures false
|
||||
strictCheck true
|
||||
|
||||
mapping {
|
||||
java = 'SLASHSTAR_STYLE'
|
||||
}
|
||||
}
|
||||
|
||||
processResources {
|
||||
// Include in final JAR
|
||||
from 'LICENSE.txt'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// Add custom checkstyle dependency (fixes a few wrong warnings about imports and @param tags in annotations)
|
||||
checkstyle 'org.spongepowered:checkstyle:6.1.1-sponge1'
|
||||
}
|
||||
|
||||
// Checkstyle settings
|
||||
checkstyle {
|
||||
configFile = api.file('checkstyle.xml')
|
||||
configProperties = [
|
||||
'basedir': project.projectDir,
|
||||
'suppressions': project.file('checkstyle-suppressions.xml'),
|
||||
'severity': 'warning'
|
||||
]
|
||||
}
|
||||
|
||||
// Deployment configuration
|
||||
apply from: api.file('gradle/deploy.gradle')
|
||||
|
||||
task wrapper(type: Wrapper) {
|
||||
gradleVersion = '2.3'
|
||||
}
|
||||
Vendored
BIN
Binary file not shown.
+2
-2
@@ -1,6 +1,6 @@
|
||||
#Sat May 03 12:44:05 CDT 2014
|
||||
#Fri Apr 03 11:08:44 CEST 2015
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=http\://services.gradle.org/distributions/gradle-2.0-all.zip
|
||||
distributionUrl=http\://services.gradle.org/distributions/gradle-2.3-bin.zip
|
||||
+1
-1
@@ -1 +1 @@
|
||||
rootProject.name = theName
|
||||
rootProject.name = name
|
||||
Reference in new issue
Block a user