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
|
# Normalize as LF in the repository, OS native locally
|
||||||
* text=auto
|
* text=auto
|
||||||
|
|
||||||
|
*.bat text eol=crlf
|
||||||
|
gradlew text eol=lf
|
||||||
|
*.sh text eol=lf
|
||||||
|
|
||||||
*.java text
|
*.java text
|
||||||
|
*.java diff=java
|
||||||
|
|
||||||
# Binary files that should not be modified
|
# Binary files that should not be modified
|
||||||
*.dat binary
|
*.dat binary
|
||||||
|
|||||||
+4
-1
@@ -1,12 +1,15 @@
|
|||||||
sudo: false
|
sudo: false
|
||||||
|
|
||||||
language: java
|
language: java
|
||||||
jdk:
|
jdk:
|
||||||
- openjdk6
|
- openjdk6
|
||||||
- openjdk7
|
- openjdk7
|
||||||
- oraclejdk7
|
- oraclejdk7
|
||||||
- oraclejdk8
|
- oraclejdk8
|
||||||
|
|
||||||
env: GRADLE_OPTS="-Xms1g -Xmx3g"
|
env: GRADLE_OPTS="-Xms1g -Xmx3g"
|
||||||
install: true
|
install: true
|
||||||
script: gradle build
|
script: ./gradlew build
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
email: false
|
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
|
Copyright (c) contributors
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
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
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
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
|
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 {
|
buildscript {
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
|
||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'nl.javadude.gradle.plugins:license-gradle-plugin:0.11.0'
|
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'
|
version = '1.1-SNAPSHOT'
|
||||||
|
|
||||||
// Extended project information
|
ext.api = project
|
||||||
ext.projectName = 'SpongeAPI'
|
apply from: 'gradle/java.gradle'
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
// Project dependencies
|
// Project dependencies
|
||||||
dependencies {
|
dependencies {
|
||||||
@@ -63,150 +22,11 @@ dependencies {
|
|||||||
compile 'ninja.leaping.configurate:configurate-hocon:1.1'
|
compile 'ninja.leaping.configurate:configurate-hocon:1.1'
|
||||||
compile 'com.flowpowered:flow-math:1.0.0'
|
compile 'com.flowpowered:flow-math:1.0.0'
|
||||||
compile 'org.ow2.asm:asm:5.0.3'
|
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 configuration
|
||||||
jar.manifest.mainAttributes(
|
jar {
|
||||||
"Built-By": System.properties['user.name'],
|
manifest {
|
||||||
"Created-By": System.properties['java.vm.version'] + " (" + System.properties['java.vm.vendor'] + ")",
|
attributes('Main-Class': 'org.spongepowered.api.util.InformativeMain')
|
||||||
"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'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -220,7 +220,7 @@
|
|||||||
|
|
||||||
<module name="NewlineAtEndOfFile"/>
|
<module name="NewlineAtEndOfFile"/>
|
||||||
<module name="SuppressionFilter">
|
<module name="SuppressionFilter">
|
||||||
<property name="file" value="${basedir}/checkstyle-suppressions.xml"/>
|
<property name="file" value="${suppressions}"/>
|
||||||
</module>
|
</module>
|
||||||
|
|
||||||
<property name="basedir" value="${basedir}"/>
|
<property name="basedir" value="${basedir}"/>
|
||||||
|
|||||||
+3
-5
@@ -1,6 +1,4 @@
|
|||||||
theName=SpongeAPI
|
name=SpongeAPI
|
||||||
inceptionYear=2014
|
description=A Minecraft plugin API
|
||||||
packaging=jar
|
url=https://www.spongepowered.org
|
||||||
url=http://spongepowered.org
|
|
||||||
description=SpongeAPI
|
|
||||||
organization=SpongePowered
|
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
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
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