From 1807c4ac83ad7247b8fe07883075140b6f644b0e Mon Sep 17 00:00:00 2001 From: Patrick Flynn Date: Tue, 3 Nov 2015 12:08:00 -0500 Subject: [PATCH] build with gradle-intellij-plugin I've updated how to use this new setup for importing into IntelliJ. Due to an issue with how intellij does import you unfortunately have to revert the imports changes to .idea after import to get the preconfigured runconfiguration. There's also a couple ugly hacks to support multi-plugin projects which will be fixed when https://github.com/JetBrains/gradle-intellij-plugin/issues/17 is fixed in a few days. --- .gitignore | 24 ++-- .idea/.name | 2 +- .idea/compiler.xml | 1 - .idea/ct4ij.iml | 9 -- .idea/libraries/git4idea.xml | 10 -- .idea/libraries/gradle.xml | 13 --- .idea/libraries/groovy_jps_plugin.xml | 12 -- .idea/libraries/idea_junit.xml | 10 -- .idea/libraries/properties.xml | 9 -- .idea/misc.xml | 79 ------------- .idea/modules.xml | 11 -- .idea/runConfigurations/Core_IJ_Community.xml | 11 -- .idea/uiDesigner.xml | 6 +- .idea/vcs.xml | 2 +- CONTRIBUTING.md | 32 +---- build.gradle | 103 ++++++++--------- common-lib/build.gradle | 24 ---- common-lib/common-lib.iml | 35 ------ common-test-lib/build.gradle | 12 +- common-test-lib/common-test-lib.iml | 40 ------- core-plugin/.gitignore | 3 - core-plugin/build.gradle | 109 +++++------------- core-plugin/core-plugin.iml | 72 ------------ .../synchronization/SampleSyncTaskTest.java | 1 - fetchIdea.sh | 32 ----- google-account-plugin/build.gradle | 84 +++----------- .../google-account-plugin.iml | 75 ------------ gradle.properties | 2 + scripts/javac2.gradle | 43 ------- settings.gradle | 2 +- 30 files changed, 114 insertions(+), 754 deletions(-) delete mode 100644 .idea/ct4ij.iml delete mode 100644 .idea/libraries/git4idea.xml delete mode 100644 .idea/libraries/gradle.xml delete mode 100644 .idea/libraries/groovy_jps_plugin.xml delete mode 100644 .idea/libraries/idea_junit.xml delete mode 100644 .idea/libraries/properties.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/runConfigurations/Core_IJ_Community.xml delete mode 100644 common-lib/common-lib.iml delete mode 100644 common-test-lib/common-test-lib.iml delete mode 100644 core-plugin/.gitignore delete mode 100644 core-plugin/core-plugin.iml delete mode 100755 fetchIdea.sh delete mode 100644 google-account-plugin/google-account-plugin.iml create mode 100644 gradle.properties delete mode 100644 scripts/javac2.gradle diff --git a/.gitignore b/.gitignore index c9df838a52..605a45103c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,11 @@ -/out .idea/workspace.xml -.idea/libraries/Gradle* -.gradle/ -build/ -common-lib/.gradle/ -common-lib/build/ -core-plugin/.gradle/ -core-plugin/build/ -core-plugin/core-plugin.zip -google-account-plugin/.gradle/ -google-account-plugin/.idea/inspectionProfiles/ -google-account-plugin/build/ -google-account-plugin/google-account-plugin.zip -idea-IC/ +.idea/modules.xml +.idea/misc.xml .idea/gradle.xml -.idea/codeStyleSettings.xml +.idea/compiler.xml +.idea/shelf/ +.idea/libraries/ +.idea/.name +**/*.iml +.gradle/ +**/build/ \ No newline at end of file diff --git a/.idea/.name b/.idea/.name index 4d803351ee..5ed74ab079 100644 --- a/.idea/.name +++ b/.idea/.name @@ -1 +1 @@ -google-cloud-tools \ No newline at end of file +gcloud-intellij \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 3a595dc017..9a8b7e5c45 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -18,6 +18,5 @@ - \ No newline at end of file diff --git a/.idea/ct4ij.iml b/.idea/ct4ij.iml deleted file mode 100644 index d6ebd48059..0000000000 --- a/.idea/ct4ij.iml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/git4idea.xml b/.idea/libraries/git4idea.xml deleted file mode 100644 index d19a0ea534..0000000000 --- a/.idea/libraries/git4idea.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/gradle.xml b/.idea/libraries/gradle.xml deleted file mode 100644 index f572fb737c..0000000000 --- a/.idea/libraries/gradle.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/groovy_jps_plugin.xml b/.idea/libraries/groovy_jps_plugin.xml deleted file mode 100644 index 836d50e4c3..0000000000 --- a/.idea/libraries/groovy_jps_plugin.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/idea_junit.xml b/.idea/libraries/idea_junit.xml deleted file mode 100644 index 5bf6ed98c2..0000000000 --- a/.idea/libraries/idea_junit.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/properties.xml b/.idea/libraries/properties.xml deleted file mode 100644 index 3979ef30ea..0000000000 --- a/.idea/libraries/properties.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 832cd7eadb..0000000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - Android Lint - - - General - - - Maven - - - Plugin DevKit - - - XPath - - - - - Abstraction issues - - - - - - - - - - - - - - - - - - - diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index a1b6369e05..0000000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/.idea/runConfigurations/Core_IJ_Community.xml b/.idea/runConfigurations/Core_IJ_Community.xml deleted file mode 100644 index acab48c7ca..0000000000 --- a/.idea/runConfigurations/Core_IJ_Community.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml index 33aa59e5c1..e96534fb27 100644 --- a/.idea/uiDesigner.xml +++ b/.idea/uiDesigner.xml @@ -2,12 +2,12 @@ - - - + + + diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 35eb1ddfbb..94a25f7f4c 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4fc091fef9..0696e99e0d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -41,37 +41,17 @@ Other useful targets while developing include: * $ ./gradlew test: run tests * $ ./gradlew check: run static analysis tools * $ ./gradlew clean: remove all build artifacts - -Gradle builds fail on Windows due to reliance on the fetchIdea.sh shell script. -This script simply downloads and installs IntelliJ IDEA code for building against -and shouldn't be too hard to port to Windows. See -[Issue 167](https://github.com/GoogleCloudPlatform/gcloud-intellij/issues/167). -As a quick workaround you can manually download and install the relevant -IDEA distribution and comment out the loadIdea task in -[build.gradle](https://github.com/GoogleCloudPlatform/gcloud-intellij/blob/master/build.gradle). - -On Windows you should be able to build the plugins inside IntelliJ by -selecting "Prepare All Plugin Modules For Deployment" from the Build menu. +* $ ./gradlew runIdea: run IntelliJ preconfigured with the plugins from this project. ## Configuring and Debugging in IntelliJ ### Import Project -To work in IDEA, just "Open" the cloud-tools-for-intellij directory -(the root directory cloned from Github) from the IDEA opening screen. - -Alternately you can select "Import Project" from the IDEA opening screen and -choose the root build.gradle file. In this case, IDE features for IDEA plugin -development may not work; and run and debug configurations will not -be available from within the IDE. However, you can run and debug unit tests. - -### Optional: Downloading source for IDEA to debug. - -[Download the IDEA source tarball from JetBrains](http://www.jetbrains.org/display/IJOS/Download) -into your home (or any other convenient) directory. Extract it and -add the resulting directory (usually something like ideaIC-141.1532.4) -in the Sourcepath tab of Project Structure > SDKs for the IntelliJ CE 141.1532 SDK. - +1. 'New project from existing sources' +1. Select the root build.gradle file to import +1. Git revert changes to the .idea folder because IDEA Gradle import blows it away + (https://youtrack.jetbrains.com/issue/IDEA-146295) +1. Run or debug the **Cloud Tools on IntelliJ** run configuration ## Contributing code diff --git a/build.gradle b/build.gradle index 7cb6f0ace4..ddf77e6f74 100644 --- a/build.gradle +++ b/build.gradle @@ -1,36 +1,44 @@ -plugins { - id 'net.researchgate.release' version '2.3.4' +buildscript { + repositories { + maven { url 'http://repo.spring.io/plugins-release' } + maven { url "https://plugins.gradle.org/m2/" } + } + dependencies { + classpath 'org.springframework.build.gradle:propdeps-plugin:0.0.7' + classpath 'gradle.plugin.org.jetbrains:gradle-intellij-plugin:0.0.29' + } } -apply plugin: 'base' - -task loadIdea(type:Exec) { - commandLine './fetchIdea.sh' +configure(allprojects) { + apply plugin: 'propdeps' + apply plugin: 'propdeps-idea' } subprojects { + repositories { + mavenCentral() + } + apply plugin: 'java' - apply plugin: 'findbugs' - apply plugin: 'pmd' - apply plugin: 'jdepend' + sourceCompatibility = javaVersion + targetCompatibility = javaVersion group = 'com.google.gct' version = '0.9-alpha.1-SNAPSHOT' - repositories { - mavenCentral() + apply plugin: 'org.jetbrains.intellij' + intellij { + version = ideaVersion + downloadSources = true + sandboxDirectory = "${rootProject.buildDir}/idea-sandbox" } dependencies { - compile group: 'org.apache.httpcomponents', name: 'httpcore', version: '4.4.+' - compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5' - testCompile group: 'junit', name: 'junit', version: '4.+' - testCompile group: 'org.mockito', name: 'mockito-all', version: '1.9.5' - } + compile 'com.google.guava:guava:18.0' - compileJava.dependsOn ':loadIdea' - sourceCompatibility = 1.6 - targetCompatibility = 1.6 + testCompile 'junit:junit:4.+' + testCompile 'org.mockito:mockito-all:1.9.5' + } processResources { filesMatching("**/plugin.xml") { @@ -38,46 +46,29 @@ subprojects { } } -} - - -// Configuration to package IDEA with our plugins pre-installed in -// the root project build directory - -ext.devBuildDir = "${buildDir}/idea-IC-gcloud" -ext.devConfigDir = "${buildDir}/idea-IC-gcloud-config" + apply plugin: 'findbugs' + findbugs { + ignoreFailures = true + sourceSets = [sourceSets.main] + effort = "max" + } -task devBuild(type:Copy) { - dependsOn cleanDevBuild - from ('idea-IC') - into project.devBuildDir - doLast { - def ideaConfigFile = new File(devBuildDir, 'bin/idea.properties') - assert ideaConfigFile.exists() - ideaConfigFile.withWriterAppend('UTF-8') { writer -> - writer.writeLine('\n# CHANGES FOR TEST BUILDS OF PLUGIN'); - writer.writeLine("idea.config.path=${devConfigDir}/config"); - writer.writeLine("idea.system.path=${devConfigDir}/system"); - writer.writeLine('idea.plugins.path=${idea.config.path}/plugins'); - writer.writeLine('idea.log.path=${idea.system.path}/log'); - } - def jvmConfigFile = new File(devBuildDir, 'bin/idea64.vmoptions') - assert jvmConfigFile.exists() - jvmConfigFile.withWriterAppend('UTF-8') { writer -> - writer.writeLine('-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'); + tasks.withType(FindBugs) { + reports { + xml.enabled = false + html.enabled = true } } -} -subprojects { - afterEvaluate { project -> - if (project.hasProperty("plugin") && (project.plugin instanceof Zip)) { - rootProject.devBuild { - dependsOn project.plugin - from (zipTree(project.plugin.archivePath)) { - into 'plugins' - } - } - } + apply plugin: 'pmd' + pmd { + ignoreFailures = true + sourceSets = [sourceSets.main] } + + apply plugin: 'jdepend' } + +task clean(type: Delete) { + delete rootProject.buildDir +} \ No newline at end of file diff --git a/common-lib/build.gradle b/common-lib/build.gradle index 60c17463c9..6ea5a74468 100644 --- a/common-lib/build.gradle +++ b/common-lib/build.gradle @@ -1,27 +1,3 @@ -apply plugin: 'java' - -repositories { - mavenCentral() -} - -def ideaHome = '../idea-IC/' -def ideaLib = ideaHome + 'lib/' - dependencies { compile files('lib/GoogleFeedback.jar') - compile files(ideaLib + 'annotations.jar') - compile files(ideaLib + 'extensions.jar') - compile files(ideaLib + 'idea.jar') - compile files(ideaLib + 'openapi.jar') - compile files(ideaLib + 'picocontainer.jar') - compile files(ideaLib + 'resources_en.jar') - compile files(ideaLib + 'util.jar') - - // todo(elharo): install these in third_party - compile files(ideaLib + 'jdom.jar') - - compile files('third_party/guava/guava-18.0.jar') - - testCompile files(ideaLib + 'junit-4.11.jar') - testCompile files('third_party/mockito/mockito-all-1.9.5.jar') } diff --git a/common-lib/common-lib.iml b/common-lib/common-lib.iml deleted file mode 100644 index 00a1b49d72..0000000000 --- a/common-lib/common-lib.iml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/common-test-lib/build.gradle b/common-test-lib/build.gradle index a38bf6c529..bb0c674660 100644 --- a/common-test-lib/build.gradle +++ b/common-test-lib/build.gradle @@ -1,10 +1,4 @@ -apply plugin: 'java' - -repositories { - mavenCentral() -} - dependencies { - compile files('third_party/junit/junit-4.11.jar') - compile files('third_party/mockito/mockito-all-1.9.5.jar') -} + compile 'junit:junit:4.+' + compile 'org.mockito:mockito-all:1.9.5' +} \ No newline at end of file diff --git a/common-test-lib/common-test-lib.iml b/common-test-lib/common-test-lib.iml deleted file mode 100644 index aa0dfb2291..0000000000 --- a/common-test-lib/common-test-lib.iml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core-plugin/.gitignore b/core-plugin/.gitignore deleted file mode 100644 index bc1ff0657e..0000000000 --- a/core-plugin/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -out/ -.DS_Store -.idea/workspace.xml diff --git a/core-plugin/build.gradle b/core-plugin/build.gradle index cc45b953dc..29649f14f0 100644 --- a/core-plugin/build.gradle +++ b/core-plugin/build.gradle @@ -1,64 +1,45 @@ -apply from: '../scripts/javac2.gradle' -def ideaHome = '../idea-IC/' -def pluginName = 'google-cloud-tools-core' +// Use IntelliJ src structure for now +sourceSets.main.java.srcDirs = ['src'] +sourceSets.main.resources.srcDirs = ['resources'] +sourceSets.test.java.srcDirs = ['testSrc'] +sourceSets.test.resources.srcDirs = ['testResources'] + +intellij { + pluginName = 'google-cloud-tools-core' + plugins 'Groovy','gradle', 'git4idea', 'properties', 'junit' +} + +project.afterEvaluate { + project.tasks.getByPath(':core-plugin:prepareSandbox').dependsOn ':google-account-plugin:prepareSandbox' + project.configurations.provided.each { + intellij.intellijFiles.add(it) + } +} dependencies { - compile(project(':google-account-plugin')) { + provided(project(':google-account-plugin')) { transitive = false } compile(project(':common-lib')) { transitive = false } - compile files('lib/google-api-services-clouddebugger-v2-rev4-1.20.0.jar') - compile files('lib/google-api-services-developerprojects-v1-rev20140815212553-1.19.0.jar') - compile files('lib/google-api-services-source.jar') - compile files(ideaHome + '/plugins/git4idea/lib/git4idea.jar') - compile files(ideaHome + '/lib/annotations.jar') - compile files(ideaHome + '/lib/bootstrap.jar') - compile files(ideaHome + '/lib/extensions.jar') - compile files(ideaHome + '/lib/forms_rt.jar') - compile files(ideaHome + '/lib/jdom.jar') - compile files(ideaHome + '/lib/idea.jar') - compile files(ideaHome + '/lib/openapi.jar') - compile files(ideaHome + '/lib/util.jar') - compile fileTree(dir: ideaHome + '/plugins/Groovy/lib') - compile fileTree(dir: ideaHome + '/plugins/gradle/lib') - compile files('../google-account-plugin/lib/google.gdt.eclipse.login.common.jar') - compile files('../google-account-plugin/third_party/repackaged/google-api-java-client-min-repackaged-1.20.0.jar') - compile 'com.google.appengine:gradle-appengine-builder-model:0.1.0' compile 'org.eclipse.jgit:org.eclipse.jgit:3.3.0.201403021825-r' // todo(elharo): we shouldn't need Apache commons; Guava will suffice compile 'commons-io:commons-io:2.4' + provided files('../google-account-plugin/lib/google.gdt.eclipse.login.common.jar') + provided files('../google-account-plugin/third_party/repackaged/google-api-java-client-min-repackaged-1.20.0.jar') + compile files('lib/google-api-services-clouddebugger-v2-rev4-1.20.0.jar') + compile files('lib/google-api-services-developerprojects-v1-rev20140815212553-1.19.0.jar') + compile files('lib/google-api-services-source.jar') - testCompile files(ideaHome + '/lib/picocontainer.jar') - testCompile files(ideaHome + '/lib/trove4j.jar') - testCompile files('third_party/jackson-core-asl/jackson-core-asl-1.9.11.jar') - testCompile files(ideaHome + '/plugins/git4idea/lib/remote-servers-git.jar') - testCompile files(ideaHome + '/plugins/git4idea/lib/resources_en.jar') - testCompile files(ideaHome + '/plugins/properties/lib/properties.jar') - testCompile files(ideaHome + '/plugins/gradle/lib/gradle-tooling-api-2.2.jar') - testCompile files(ideaHome + '/plugins/junit/lib/idea-junit.jar') - testCompile files("${System.properties['java.home']}/../lib/tools.jar") - - testCompile files('third_party/org-eclipse-jgit/org.eclipse.jgit-3.3.0.201403021825-r.jar') - testCompile files('third_party/org-eclipse-jgit-junit/org.eclipse.jgit.junit-3.0.0.201306101825-r.jar') - testCompile files('third_party/mockito/mockito-all-1.9.5.jar') - - testRuntime files('../google-account-plugin/lib/google-api-services-oauth2-v2-rev70-1.18.0-rc.jar') - testRuntime files('../google-account-plugin/lib/google-http-client-jackson-1.18.0-rc.jar') + testCompile 'org.eclipse.jgit:org.eclipse.jgit.junit:3.3.0.201403021825-r' + testRuntime 'com.google.apis:google-api-services-oauth2:v2-rev70-1.18.0-rc' + testRuntime 'com.google.http-client:google-http-client-jackson:1.18.0-rc' testRuntime files('../google-account-plugin/lib/google-gct-login-context-ij-pg.jar') - testRuntime files(ideaHome + '/lib/log4j.jar') - testRuntime files(ideaHome + '/lib/idea_rt.jar') - testRuntime fileTree(dir: ideaHome + '/lib', include: '*.jar') } -// **replace** default sourceSets with idea layout -sourceSets.main.java.srcDirs = ['src', 'resources'] -sourceSets.main.resources.srcDirs = ['resources'] -sourceSets.test.java.srcDirs = ['testSrc'] - test { testLogging { events "skipped", "failed" @@ -68,41 +49,3 @@ test { } } -task plugin(type: Zip, dependsOn: jar) { - baseName = pluginName - destinationDir = file('build') - include '*.jar' - from('build/libs') { - into(pluginName + '/lib') - } - from('../common-lib/build/libs') { - into(pluginName + '/lib') - } - from('../common-lib/lib') { - into(pluginName + '/lib') - } - from('lib/') { - into(pluginName + '/lib') - } - from('third_party/gradle-appengine-builder-model') { - into(pluginName + '/lib') - } -} - -findbugs { - ignoreFailures = true - sourceSets = [sourceSets.main] - effort = "max" -} - -tasks.withType(FindBugs) { - reports { - xml.enabled = false - html.enabled = true - } -} - -pmd { - ignoreFailures = true - sourceSets = [sourceSets.main] -} diff --git a/core-plugin/core-plugin.iml b/core-plugin/core-plugin.iml deleted file mode 100644 index b85e779ac9..0000000000 --- a/core-plugin/core-plugin.iml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/core-plugin/testSrc/com/google/gct/idea/appengine/synchronization/SampleSyncTaskTest.java b/core-plugin/testSrc/com/google/gct/idea/appengine/synchronization/SampleSyncTaskTest.java index 0f50a8f30f..e7ec8e9fcb 100644 --- a/core-plugin/testSrc/com/google/gct/idea/appengine/synchronization/SampleSyncTaskTest.java +++ b/core-plugin/testSrc/com/google/gct/idea/appengine/synchronization/SampleSyncTaskTest.java @@ -15,7 +15,6 @@ */ package com.google.gct.idea.appengine.synchronization; - import com.google.common.collect.Lists; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.ListBranchCommand; diff --git a/fetchIdea.sh b/fetchIdea.sh deleted file mode 100755 index 59982ce242..0000000000 --- a/fetchIdea.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2015 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -ideaVersion="14.1.4" - -if [ ! -d ./idea-IC/lib ]; then - wget http://download.jetbrains.com/idea/ideaIC-${ideaVersion}.tar.gz - - # Unzip IDEA - tar zxf ideaIC-${ideaVersion}.tar.gz - rm -rf ideaIC-${ideaVersion}.tar.gz - ls - - # Move the versioned IDEA folder to a known location - ideaPath=$(find . -name 'idea-IC-*' -type d -prune | head -n 1) - echo ${ideaPath} - mv ${ideaPath} ./idea-IC -fi - diff --git a/google-account-plugin/build.gradle b/google-account-plugin/build.gradle index 1c40fcc76c..949ca1c659 100644 --- a/google-account-plugin/build.gradle +++ b/google-account-plugin/build.gradle @@ -1,84 +1,30 @@ -// see https://github.com/JetBrains/gradle-intellij-plugin +// Use IntelliJ src structure for now +sourceSets.main.java.srcDirs = ['src'] +sourceSets.main.resources.srcDirs = ['resources'] +sourceSets.test.java.srcDirs = ['testSrc'] +sourceSets.test.resources.srcDirs = ['testResources'] -apply from: '../scripts/javac2.gradle' -def ideaLib = '../idea-IC/lib/' +intellij { + pluginName = 'google-account' +} dependencies { - compile(project(':common-lib')) { transitive = false } compile files('lib/google.gdt.eclipse.login.common.jar') compile files('lib/google-gct-login-context-ij-pg.jar') - compile files('lib/google-api-services-oauth2-v2-rev70-1.18.0-rc.jar') - compile files('lib/google-http-client-jackson-1.18.0-rc.jar') compile fileTree(dir: 'third_party/repackaged', include: '*.jar') - compile files(ideaLib + 'annotations.jar') - compile files(ideaLib + 'extensions.jar') - compile files(ideaLib + 'idea.jar') - compile files(ideaLib + 'openapi.jar') - compile files(ideaLib + 'util.jar') - compile files('third_party/javax-servlet-api/javax.servlet-api-3.0.1.jar') - compile 'com.google.guava:guava:18.0' + compile 'com.google.apis:google-api-services-oauth2:v2-rev70-1.18.0-rc' + compile 'com.google.http-client:google-http-client-jackson:1.18.0-rc' + compile 'javax.servlet:javax.servlet-api:3.0.1' compile 'net.jcip:jcip-annotations:1.0' + runtime 'org.codehaus.jackson:jackson-core-asl:1.9.11' - runtime files('third_party/jackson-core-asl/jackson-core-asl-1.9.11.jar') - - testCompile files(ideaLib + 'junit-4.11.jar') - testCompile files('third_party/mockito/mockito-all-1.9.5.jar') -} - -// **replace** default sourceSets with idea layout -sourceSets.main.java.srcDirs = ['src', 'resources'] -sourceSets.main.resources.srcDirs = ['resources'] -sourceSets.test.java.srcDirs = ['testSrc'] - -task plugin(type: Zip, dependsOn: jar) { - // by default uses version = 1.0 - baseName = 'google-account' - destinationDir = file('build') - include '*.jar' - from('build/libs') { - into('google-account/lib') - } - from('../common-lib/build/libs') { - into('google-account/lib') - } - from('../common-lib/lib') { - into('google-account/lib') - } - from('lib/') { - into('google-account/lib') - } - from('third_party/repackaged') { - into('google-account/lib') - } - from('third_party/javax-servlet-api') { - into('google-account/lib') - } - from('third_party/jackson-core-asl') { - into('google-account/lib') - } -} - -findbugs { - ignoreFailures = true - sourceSets = [sourceSets.main] - effort = "max" -} - -tasks.withType(FindBugs) { - reports { - xml.enabled = false - html.enabled = true - } -} - -pmd { - ignoreFailures = true - sourceSets = [sourceSets.main] + testCompile 'xalan:serializer:2.7.1' + testCompile files("${System.properties['java.home']}/../lib/tools.jar") } processResources { @@ -89,4 +35,4 @@ processResources { expand "usageTrackerProperty": trackerProperty } } -} +} \ No newline at end of file diff --git a/google-account-plugin/google-account-plugin.iml b/google-account-plugin/google-account-plugin.iml deleted file mode 100644 index 2a17652e56..0000000000 --- a/google-account-plugin/google-account-plugin.iml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000000..0cc4c769ae --- /dev/null +++ b/gradle.properties @@ -0,0 +1,2 @@ +ideaVersion = IC-14.1.4 +javaVersion = 1.6 \ No newline at end of file diff --git a/scripts/javac2.gradle b/scripts/javac2.gradle deleted file mode 100644 index b4d2a40fba..0000000000 --- a/scripts/javac2.gradle +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Script that replaces javac with javac2 by removing all actions in compileJava - * and drops in a single action that calls the javac2 ant task defined by JetBrains - */ -def javac2Lib = '../idea-IC/lib' - -configurations { - javac2 -} - -dependencies { - javac2 files(javac2Lib + '/javac2.jar') - javac2 files(javac2Lib + '/jdom.jar') - javac2 files(javac2Lib + '/asm.jar') - javac2 files(javac2Lib + '/asm-all.jar') - javac2 files(javac2Lib + '/asm-commons.jar') - javac2 files(javac2Lib + '/jgoodies-forms.jar') -} - -// overwrite compileJava to use intellij javac2 -// https://grahamedgecombe.com/blog/2013/04/03/using-intellij-ideas-javac2-in-gradle -// https://discuss.gradle.org/t/replacing-tasks-overwrite-true-does-not-work-in-1-5/2148/3 -compileJava { - actions = [] - doLast { - project.sourceSets.main.output.classesDir.mkdirs() - ant.taskdef name: 'javac2', - classname: 'com.intellij.ant.Javac2', - classpath: configurations.javac2.asPath - ant.javac2 srcDir: project.sourceSets.main.java.srcDirs.join(':'), - classpath: project.sourceSets.main.compileClasspath.asPath, - destDir: project.sourceSets.main.output.classesDir, - source: sourceCompatibility, - target: targetCompatibility, - includeAntRuntime: false - /** other flags - * optimize = "on/off" - * deprecation = "on/off" - * debugLevel = "something" - * debug = "on/off" - */ - } -} diff --git a/settings.gradle b/settings.gradle index 9a4ccb540a..8e6eae354a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -include 'google-account-plugin', 'core-plugin', 'common-lib' +include 'google-account-plugin', 'core-plugin', 'common-lib', 'common-test-lib'