Skip to content

Commit

Permalink
* build temporal changes: robovm mirror support in gradle + gradle de…
Browse files Browse the repository at this point in the history
…ployment script
  • Loading branch information
dkimitsa committed May 26, 2021
1 parent c07d9a4 commit e0711fb
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 44 deletions.
100 changes: 56 additions & 44 deletions plugins/gradle/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,10 @@ buildscript {

apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: 'maven'
apply plugin: 'nexus'
apply plugin: 'eclipse'
apply plugin: 'maven-publish'
apply plugin: 'signing'
apply plugin: 'com.github.johnrengelman.shadow'

group = 'com.mobidevelop.robovm'
archivesBaseName = 'robovm-gradle-plugin'
version = '2.3.14.2-SNAPSHOT'

sourceCompatibility = 1.8
targetCompatibility = 1.8
Expand All @@ -29,8 +25,6 @@ compileJava {

ext {
roboVMVersion = '2.3.14.2-SNAPSHOT'
nexusUsername = System.getenv('MAVEN_USERNAME')
nexusPassword = System.getenv('MAVEN_PASSWORD')
}

repositories {
Expand All @@ -52,51 +46,68 @@ dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
}

modifyPom {
project {
name 'RoboVM Gradle Plugin'
packaging 'jar'
description 'The RoboVM Gradle Plugin provides a way to build RoboVM apps using Gradle.'
url 'https://github.com/mobidevelop/robovm/'
inceptionYear '2013'

scm {
url 'https://github.com/mobidevelop/robovm.git'
connection 'scm:git:git://github.com/mobidevelop/robovm.git'
developerConnection 'scm:git:[email protected]:mobidevelop/robovm.git'
}

licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
publishing {
publications {
mavenJava(MavenPublication) {
groupId = 'com.mobidevelop.robovm'
artifactId = 'robovm-gradle-plugin'
version = "${roboVMVersion}"
from components.java

pom {
name = 'RoboVM Gradle Plugin'
packaging = 'jar'
description = 'The RoboVM Gradle Plugin provides a way to build RoboVM apps using Gradle.'
url = 'https://github.com/mobidevelop/robovm/'
inceptionYear = '2013'

scm {
url = 'https://github.com/mobidevelop/robovm.git'
connection = 'scm:git:git://github.com/mobidevelop/robovm.git'
developerConnection = 'scm:git:[email protected]:mobidevelop/robovm.git'
}

licenses {
license {
name = 'The Apache Software License, Version 2.0'
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution = 'repo'
}
}

developers {
developer {
id = 'jtakakura'
name = 'Junji Takakura'
}
developer {
id = 'ntherning'
name = 'Niklas Therning'
}
}
}
}

developers {
developer {
id 'jtakakura'
name 'Junji Takakura'
}
developer {
id 'ntherning'
name 'Niklas Therning'
}
}
repositories {
maven {
// TODO: FIXME: provide proper release/snapshot repositories
url = 'file:///Users/dkimitsa/projects/git/depo_m1_2.3.14.2'
// credentials {
// username = 'dkimitsa'
// password = ''
// }
}
}
}

//signing {
// sign publishing.publications.mavenJava
//}

task wrapper(type: Wrapper) {
gradleVersion = '4.10.1'
}

// apply from: 'local.gradle'

jar {
enabled = false
}

shadowJar {
classifier = ''
dependencies {
Expand All @@ -108,4 +119,5 @@ shadowJar {
}

assemble.dependsOn('shadowJar')
install.dependsOn('shadowJar')
publish.dependsOn('shadowJar')
publishToMavenLocal.dependsOn('shadowJar')
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
import org.gradle.api.DefaultTask;
import org.gradle.api.GradleException;
import org.gradle.api.Project;
import org.gradle.api.artifacts.repositories.ArtifactRepository;
import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
import org.gradle.api.plugins.JavaPlugin;
import org.gradle.api.tasks.TaskAction;
import org.robovm.compiler.AppCompiler;
Expand Down Expand Up @@ -363,10 +365,32 @@ private List<RemoteRepository> createRemoteRepositories() {
repositories.add(new RemoteRepository("maven-central", "default", "https://repo1.maven.org/maven2/"));
repositories.add(new RemoteRepository("oss.sonatype.org-snapshots", "default",
"https://oss.sonatype.org/content/repositories/snapshots/"));
// add "robovm-mirror" repository if its configured in build script
MavenArtifactRepository roboVMMirror = findRoboVMMirror();
if (roboVMMirror != null)
repositories.add(new RemoteRepository(roboVMMirror.getName(), "default", roboVMMirror.getUrl().toString()));

return repositories;
}

// looks for robovm-mirror repository, and if specified use it as well as source for resolving
// compiler dependencies
private MavenArtifactRepository findRoboVMMirror() {
Project proj = project;
while (proj != null) {
try {
ArtifactRepository roboVMMirror = proj.getBuildscript().getRepositories().getByName("robovm-mirror");
if (roboVMMirror instanceof MavenArtifactRepository) {
return (MavenArtifactRepository) roboVMMirror;
}
} catch (Throwable ignored) {
}

proj = proj.getParent();
}
return null;
}

private void extractTarGz(File archive, File destDir) throws IOException {
TarArchiveInputStream in = null;
try {
Expand Down

0 comments on commit e0711fb

Please sign in to comment.