X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=build.gradle;h=795d0d2c9614e7f00a98d822c587cf497299a216;hb=3eb0a0dda724ac9a0b83af44e6af6cd8c09e3837;hp=f35525854f0de46518fb2483ae100215ea619425;hpb=3158a49ea3606c56b5830ec306510a6315d9c64e;p=jalview.git diff --git a/build.gradle b/build.gradle index f355258..795d0d2 100644 --- a/build.gradle +++ b/build.gradle @@ -1,112 +1,182 @@ -import org.apache.tools.ant.filters.ReplaceTokens import org.gradle.internal.os.OperatingSystem -import org.gradle.plugins.ide.eclipse.model.* -import groovy.transform.ExternalizeMethods -//import org.eclipse.osgi.* +import org.gradle.plugins.ide.eclipse.model.Output +import org.gradle.plugins.ide.eclipse.model.Library + import com.diffplug.gradle.GoomphCacheLocations buildscript { - repositories { - /* - mavenCentral() - jcenter() - */ - } } plugins { id 'java' id 'application' id 'eclipse' + id 'com.diffplug.gradle.oomph.ide' version '3.18.1' id 'com.diffplug.gradle.equinoxlaunch' version '3.18.1' id 'com.diffplug.gradle.eclipse.mavencentral' version '3.18.1' -} - - -dependencies { - //compile group: 'org.osgi', name: 'org.osgi.service.component', version: '1.4.0' -/* - source.addMaven('org.eclipse.platform:org.eclipse.osgi:3.14.0') - source.addMaven('org.eclipse.platform:org.eclipse.equinox.common:3.10.400') - source.addMaven('org.eclipse.platform:org.eclipse.core.jobs:3.10.400') - source.addMaven('org.eclipse.platform:org.eclipse.update.configurator:3.4.300') - source.addMaven('org.eclipse.platform:org.eclipse.core.runtime:3.16.0') - source.addMaven('org.eclipse.platform:org.eclipse.equinox.ds:1.6.0') - source.addMaven('javax.inject:com.springsource.javax.inject:1.0.0') -*/ - //compile 'com.ibm.icu:com.ibm.icu:4.4.2' + id 'com.diffplug.gradle.p2.asmaven' version '3.18.1' } def jalviewDirAbsolutePath = file(jalviewDir).getAbsolutePath() +def useIde = useGoomph.equals("true") repositories { jcenter() mavenCentral() - maven { url "http://maven.icm.edu.pl/artifactory/repo/" } - maven { url "http://maven.geomajas.org/" } - maven { url "https://repo.spring.io/plugins-release/" } - maven { url "${jalviewDirAbsolutePath}/${m2RepoDir}" } - mavenLocal() flatDir { dirs gradlePluginsDir } } +configurations { + jalviewjsIde +} +if (useIde) { + p2AsMaven { + group 'eclipseDeps', { + repoEclipse goomph_eclipse_repo_version + //slicingOption 'latestVersionOnly', 'true' + iu 'org.eclipse.update.configurator' + iu 'org.eclipse.jdt.apt.core' + iu 'org.eclipse.jdt.core' + iu 'org.eclipse.jdt.annotation' -/* -p2AsMaven { - def requiredBundles = [ - 'org.eclipse.core.commands', - 'org.eclipse.core.resources', - 'org.eclipse.core.runtime', - 'org.eclipse.ui', - 'org.eclipse.ui.ide', - 'org.eclipse.jface', - 'org.eclipse.swt', - //"org.eclipse.swt.${com.diffplug.common.swt.os.SwtPlatform.getNative()}", - 'org.eclipse.equinox.registry', - 'org.eclipse.equinox.common', - 'org.eclipse.osgi', - 'org.eclipse.core.jobs', - 'org.eclipse.ui.workbench', - 'org.eclipse.jdt.core', - 'org.eclipse.jdt.ui', - 'org.eclipse.text' - ] - - group 'eclipse-deps', { - repoEclipse '4.12.0' - // reduce the number of plugins downloaded - slicingOption 'latestVersionOnly', 'true' - requiredBundles.each { - iu "${it}" } - append true + group 'ecjDeps', { + repo 'https://download.eclipse.org/eclipse/updates/4.13/R-4.13-201909161045/' + iu 'org.eclipse.debug.core' + iu 'org.eclipse.jdt.apt.pluggable.core' + iu 'org.eclipse.jdt.apt.ui' + iu 'org.eclipse.jdt.compiler.apt' + iu 'org.eclipse.jdt.compiler.tool' + iu 'org.eclipse.jdt.core.manipulation' + iu 'org.eclipse.jdt.debug' + iu 'org.eclipse.jdt.debug.ui' + iu 'org.eclipse.jdt.doc.user' + iu 'org.eclipse.jdt.junit' + iu 'org.eclipse.jdt.junit.core' + iu 'org.eclipse.jdt.junit4.runtime' + iu 'org.eclipse.jdt.junit4.runtime' + iu 'org.eclipse.jdt.junit5.runtime' + iu 'org.eclipse.jdt.launching' + iu 'org.eclipse.jdt.ui' + + iu 'org.eclipse.jdt.launching.macosx' + iu 'org.eclipse.jdt.launching.ui.macosx' + } + group 'eclipseOrbit', { + repo goomph_orbit_repo + slicingOption 'latestVersionOnly', 'true' + iu 'javax.el' + iu 'javax.servlet' + iu 'javax.servlet.jsp' + iu 'org.apache.ant' + iu 'org.apache.batik.constants' + iu 'org.apache.batik.css' + iu 'org.apache.batik.i18n' + iu 'org.apache.batik.util' + iu 'org.apache.commons.beanutils' + iu 'org.apache.commons.collections' + iu 'org.apache.commons.jxpath' + iu 'org.apache.commons.io' + iu 'org.apache.commons.logging' + iu 'org.apache.xmlgraphics' + iu 'org.jdom' + iu 'org.w3c.dom.events' + iu 'org.w3c.dom.smil' + iu 'org.w3c.dom.svg' + } } -} -*/ +} // if (useIde) {} + +dependencies { /* -eclipseMavenCentral { - release '4.13.0', { - compile 'org.eclipse.osgi' - compile 'org.eclipse.equinox.common' - compile 'org.eclipse.update.configurator' - compile 'org.eclipse.core.runtime' - compile 'org.eclipse.core.jobs' - compile 'org.eclipse.equinox.ds' - compile 'org.eclipse.osgi.services' - useNativesForRunningPlatform() - } -} + source.addMaven('org.eclipse.platform:org.eclipse.osgi:3.14.0') + // ... + compile 'eclipseOrbit:org.apache.ant:1.10.5.v20190526-1402' + // ... + compile 'org.osgi:org.osgi.service.component:1.4.0' + // ... */ + jalviewjsIde name: 'net.sf.j2s.core-3.2.4' + jalviewjsIde name: 'com.seeq.eclipse.importprojects-1.4.0' + +} + + + + + + +if (useIde) { + + eclipseMavenCentral { + // TODO: How do I add these to the jalviewjsIde configuration and not the compile configuration? + release goomph_eclipse_repo_version, { + + //def platformCode="cocoa.macosx.x86_64" + //compile 'org.eclipse.swt.'+platformCode + useNativesForRunningPlatform() + compile 'org.eclipse.swt' + + compile 'org.eclipse.ant.core' + compile 'org.eclipse.compare.core' + compile 'org.eclipse.core.commands' + compile 'org.eclipse.core.contenttype' + compile 'org.eclipse.core.jobs' + compile 'org.eclipse.core.expressions' + compile 'org.eclipse.core.filesystem' + compile 'org.eclipse.core.resources' + compile 'org.eclipse.core.runtime' + compile 'org.eclipse.core.variables' + compile 'org.eclipse.equinox.common' + compile 'org.eclipse.equinox.ds' + compile 'org.eclipse.equinox.app' + compile 'org.eclipse.equinox.registry' + compile 'org.eclipse.equinox.preferences' + compile 'org.eclipse.jface' + compile 'org.eclipse.osgi' + compile 'org.eclipse.osgi.services' + compile 'org.eclipse.ui' + compile 'org.eclipse.ui.workbench' + compile 'org.eclipse.team.core' + compile 'org.eclipse.text' + + compile 'org.eclipse.e4.core.commands' + compile 'org.eclipse.e4.core.contexts' + compile 'org.eclipse.e4.core.di' + compile 'org.eclipse.e4.core.di.annotations' + compile 'org.eclipse.e4.core.di.extensions.supplier' + compile 'org.eclipse.e4.core.services' + compile 'org.eclipse.e4.ui.bindings' + compile 'org.eclipse.e4.ui.model.workbench' + compile 'org.eclipse.e4.ui.workbench' + compile 'org.eclipse.e4.ui.workbench.swt' + compile 'org.eclipse.e4.ui.css.core' + compile 'org.eclipse.e4.ui.css.swt' + compile 'org.eclipse.e4.ui.css.swt.theme' + compile 'org.eclipse.e4.ui.services' + compile 'org.eclipse.e4.ui.di' + + //compile 'org.eclipse.e4.core.di.internal.extensions' + + // org.eclipse.update.configurator deliberately kept at 3.3.400 see https://github.com/diffplug/goomph/issues/69 + // this module downloaded in equinoxLaunch configuration (to specify version) + //compile 'org.eclipse.update.configurator' + + + } + } + +} // if (useIde) {} @@ -228,7 +298,7 @@ eclipse { HashMap addedSrcPath = new HashMap<>(); cp.entries.each { entry -> if (entry.kind == 'src') { - if (addedSrcPath.getAt(entry.path) || !(entry.path == "src" || entry.path == "test")) { + if (addedSrcPath.getAt(entry.path) || !(entry.path == sourceDir || entry.path == "test")) { removeTheseToo += entry } else { addedSrcPath.putAt(entry.path, true) @@ -339,7 +409,6 @@ clean { -def useIde = useGoomph.equals("true") def eclipseWorkspace task jalviewjsSetEclipseWorkspace { @@ -349,12 +418,15 @@ task jalviewjsSetEclipseWorkspace { eclipseWorkspace = file("${buildDir}/tmp/eclipse-workspace") //eclipseWorkspace.deleteOnExit() } else if (useIde) { - GoomphCacheLocations.override_workspaces = file(eclipseWorkspace.getAbsolutePath()) + com.diffplug.gradle.GoomphCacheLocations.override_workspaces = file(eclipseWorkspace.getAbsolutePath()) eclipseWorkspace = oomphIde.workspaceRegistry.workspaceDir(project, file(oomphIde.ideDir)) } println("ECLIPSE WORKSPACE: "+eclipseWorkspace.getPath()) } + +if (useIde) { + oomphIde { repoEclipse goomph_eclipse_version jdt { @@ -380,6 +452,9 @@ oomphIde { } + workspaceProp '.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs', { + it.put('org.eclipse.jdt.launching.PREF_VM_XML', goomph_PREF_VM_XML) + } // CLI ARGS HERE! @@ -387,65 +462,84 @@ oomphIde { equinoxLaunch { ideJalviewjsBuildSetup { - source.addThisProject() - - //source.addMaven('com.ibm.icu:icu4j:65.1') - source.addMaven('org.eclipse.birt.runtime:com.ibm.icu:56.1.0.v201601250100') + source.addConfiguration(configurations.compile) + source.addConfiguration(configurations.jalviewjsIde) + + source.addMaven('eclipseOrbit:org.apache.ant:1.10.5.v20190526-1402') + source.addMaven('eclipseOrbit:javax.servlet:3.1.0.v201410161800') + source.addMaven('eclipseOrbit:javax.servlet.jsp:2.2.0.v201112011158') + source.addMaven('eclipseOrbit:javax.el:2.2.0.v201303151357') + source.addMaven('eclipseOrbit:org.apache.batik.constants:1.11.0.v20190515-0436') + source.addMaven('eclipseOrbit:org.apache.batik.css:1.11.0.v20190515-0436') + source.addMaven('eclipseOrbit:org.apache.batik.i18n:1.11.0.v20190515-0436') + source.addMaven('eclipseOrbit:org.apache.batik.util:1.11.0.v20190515-0436') + source.addMaven('eclipseOrbit:org.apache.commons.beanutils:1.8.0.v201205091237') + source.addMaven('eclipseOrbit:org.apache.commons.collections:3.2.2.v201511171945') + source.addMaven('eclipseOrbit:org.apache.xmlgraphics:2.3.0.v20190515-0436') + source.addMaven('eclipseOrbit:org.apache.commons.jxpath:1.3.0.v200911051830') + source.addMaven('eclipseOrbit:org.apache.commons.io:2.6.0.v20190123-2029') + source.addMaven('eclipseOrbit:org.apache.commons.logging:1.2.0.v20180409-1502') + source.addMaven('eclipseOrbit:org.jdom:1.1.1.v201101151400') + source.addMaven('eclipseOrbit:org.w3c.dom.svg:1.1.0.v201011041433') + source.addMaven('eclipseOrbit:org.w3c.dom.smil:1.0.1.v200903091627') + source.addMaven('eclipseOrbit:org.w3c.dom.events:3.0.0.draft20060413_v201105210656') + source.addMaven('org.eclipse.birt.runtime:com.ibm.icu:56.1.0.v201601250100') source.addMaven('javax.inject:com.springsource.javax.inject:1.0.0') - - //source.addMaven('org.apache.ant:ant:1.7.0') - source.addMaven('org.apache.ant:org.apache.ant:1.6.5') - source.addMaven('org.apache.felix:org.apache.felix.scr:2.1.16') - source.addMaven('org.osgi:org.osgi.framework:1.9.0') source.addMaven('org.osgi:org.osgi.service.component:1.4.0') + source.addMaven('org.osgi:org.osgi.service.event:1.4.0') source.addMaven('org.osgi:org.osgi.util.promise:1.1.1') source.addMaven('org.osgi:org.osgi.util.function:1.1.0') - - source.addMaven('org.eclipse.jdt:org.eclipse.jdt.apt.core:3.6.500') - //source.addMaven('org.eclipse.jdt:org.eclipse.jdt.apt.ui:3.6.300') - //source.addMaven('org.eclipse.jdt:org.eclipse.jdt.compiler.apt:1.3.700') - source.addMaven('org.eclipse.jdt:org.eclipse.jdt.core:3.19.0') - - source.addMaven('org.eclipse.platform:org.eclipse.ant.core:3.5.500') - source.addMaven('org.eclipse.platform:org.eclipse.compare.core:3.6.600') - source.addMaven('org.eclipse.platform:org.eclipse.core.commands:3.9.500') - source.addMaven('org.eclipse.platform:org.eclipse.core.contenttype:3.7.400') - source.addMaven('org.eclipse.platform:org.eclipse.core.jobs:3.10.500') - source.addMaven('org.eclipse.platform:org.eclipse.core.expressions:3.6.500') - source.addMaven('org.eclipse.platform:org.eclipse.core.filesystem:1.7.500') - source.addMaven('org.eclipse.platform:org.eclipse.core.resources:3.13.500') - source.addMaven('org.eclipse.platform:org.eclipse.core.runtime:3.16.0') - source.addMaven('org.eclipse.platform:org.eclipse.core.variables:3.4.600') - source.addMaven('org.eclipse.platform:org.eclipse.equinox.common:3.10.500') - source.addMaven('org.eclipse.platform:org.eclipse.equinox.ds:1.6.0') - source.addMaven('org.eclipse.platform:org.eclipse.equinox.app:1.4.300') - source.addMaven('org.eclipse.platform:org.eclipse.equinox.registry:3.8.500') - source.addMaven('org.eclipse.platform:org.eclipse.equinox.preferences:3.7.500') - source.addMaven('org.eclipse.platform:org.eclipse.osgi:3.14.0') - source.addMaven('org.eclipse.platform:org.eclipse.team.core:3.8.700') - source.addMaven('org.eclipse.platform:org.eclipse.text:3.9.0') + //source.addMaven('org.eclipse.jdt:org.eclipse.jdt.apt.core:3.6.500') + //source.addMaven('org.eclipse.jdt:org.eclipse.jdt.core:3.19.0') + //source.addMaven('org.eclipse.jdt:org.eclipse.jdt.annotation:2.2.300') + + source.addMaven('ecjDeps:org.eclipse.debug.core:3.14.0.v20190812-1404') + source.addMaven('ecjDeps:org.eclipse.jdt.annotation:2.2.300.v20190328-1431') + source.addMaven('ecjDeps:org.eclipse.jdt.apt.core:3.6.500.v20190703-0914') + source.addMaven('ecjDeps:org.eclipse.jdt.core:3.19.0.v20190903-0936') + source.addMaven('ecjDeps:org.eclipse.jdt.apt.pluggable.core:1.2.400.v20190626-1334') + //source.addMaven('ecjDeps:org.eclipse.jdt.apt.ui:3.6.300.v20190727-1243') + source.addMaven('ecjDeps:org.eclipse.jdt.compiler.apt:1.3.700.v20190704-1731') + source.addMaven('ecjDeps:org.eclipse.jdt.compiler.tool:1.2.600.v20190322-0450') + //source.addMaven('ecjDeps:org.eclipse.jdt.core.manipulation:1.12.100.v20190904-0645') + source.addMaven('ecjDeps:org.eclipse.jdt.debug:3.13.100.v20190902-1050') + //source.addMaven('ecjDeps:org.eclipse.jdt.debug.ui:3.10.400.v20190815-2202') + source.addMaven('ecjDeps:org.eclipse.jdt.doc.user:3.15.400.v20190904-0724') + //source.addMaven('ecjDeps:org.eclipse.jdt.junit:3.11.500.v20190809-1613') + //source.addMaven('ecjDeps:org.eclipse.jdt.junit.core:3.10.400.v20190625-1910') + //source.addMaven('ecjDeps:org.eclipse.jdt.junit4.runtime:1.1.1000.v20190510-0840') + //source.addMaven('ecjDeps:org.eclipse.jdt.junit4.runtime:1.1.1000.v20190510-0840') + //source.addMaven('ecjDeps:org.eclipse.jdt.junit5.runtime:1.0.600.v20190610-0439') + source.addMaven('ecjDeps:org.eclipse.jdt.launching:3.15.0.v20190826-1639') + //source.addMaven('ecjDeps:org.eclipse.jdt.ui:3.19.0.v20190827-1733') + + //source.addMaven('ecjDeps:org.eclipse.jdt.launching.macosx:3.4.300.v20190510-0639') + //source.addMaven('ecjDeps:org.eclipse.jdt.launching.ui.macosx:1.2.300.v20190510-0639') + + //source.addMaven('') + + // org.eclipse.update.configurator deliberately kept at 3.3.400 see https://github.com/diffplug/goomph/issues/69 source.addMaven('org.eclipse.platform:org.eclipse.update.configurator:3.3.400') - /* - source.addMaven('org.eclipse.platform:org.eclipse.:3.') - source.addMaven('org.eclipse.platform:org.eclipse.:3.') - source.addMaven('org.eclipse.platform:org.eclipse.:3.') - source.addMaven('org.eclipse.platform:org.eclipse.:3.') - source.addMaven('org.eclipse.platform:org.eclipse.:3.') - */ - + launchTask 'ideJalviewjsImport', { + it.args = ["-consoleLog", "-nosplash", "--launcher.suppressErrors", "-application", "com.seeq.eclipse.importprojects.headlessimport", "-data", eclipseWorkspace.getPath(), "-import", jalviewDirAbsolutePath ] + } launchTask 'ideJalviewjsBuild', { - //it.args = ["-nosplash", "--launcher.suppressErrors", "-application", "org.eclipse.jdt.apt.core.aptBuild", "-data", eclipseWorkspace, "-"+jalviewjs_eclipseBuildArg, eclipse_project_name ] - //it.args = ["-nosplash", "--launcher.suppressErrors", "-application", "org.eclipse.jdt.apt.core.aptBuild", "-"+jalviewjs_eclipseBuildArg, eclipse_project_name ] - it.args = ["-consoleLog", "--launcher.suppressErrors", "-application", "org.eclipse.jdt.apt.core.aptBuild", "-"+jalviewjs_eclipseBuildArg, eclipse_project_name ] - //it.vmArgs = ['-Dosgi.bundles=org.eclipse.core.jobs@2:start,org.eclipse.equinox.common@3:start,org.eclipse.core.runtime@2:start'] - //it.vmArgs = ['-Dequinox.use.ds=false'] + + oomphIde.workspaceProp '.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs', { + it.put('org.eclipse.jdt.launching.PREF_VM_XML', goomph_PREF_VM_XML) + } + + def args = ["-consoleLog", "-nosplash", "--launcher.suppressErrors", "-application", "org.eclipse.jdt.apt.core.aptBuild", "-data", eclipseWorkspace.getPath(), "-"+jalviewjs_eclipseBuildArg, eclipse_project_name ] + println("ARGS="+args) + + it.args = args } } @@ -480,7 +574,7 @@ task ideSetup { dependsOn ideSetupWorkspace } - +} // if (useIde) {} @@ -720,15 +814,25 @@ jalviewjsUnzipFiles.mustRunAfter jalviewjsTranspile jalviewjsTranspile.mustRunAfter jalviewjsCopyResources jalviewjsTranspile.mustRunAfter jalviewjsCopySiteResources -task jalviewjsBuildSite { +task jalviewjsPrepareSite { + group "JalviewJS" + description "Prepares the website folder including unzipping files and copying resources" dependsOn jalviewjsSitePath dependsOn jalviewjsUnzipFiles dependsOn jalviewjsCopyResources dependsOn jalviewjsCopySiteResources +} + +task jalviewjsBuildSite { + group "JalviewJS" + description "Builds the whole website including transpiled code" + dependsOn jalviewjsPrepareSite dependsOn jalviewjsTranspile } task jalviewjsSiteTar(type: Tar) { + group "JalviewJS" + description "Creates a tar.gz file for the website" dependsOn jalviewjsBuildSite def outputFilename = "jalviewjs-site-${JALVIEW_VERSION}.tar.gz" try { @@ -747,6 +851,8 @@ task jalviewjsSiteTar(type: Tar) { def jalviewjsServer = null task jalviewjsServerStart { + group "JalviewJS" + description "Starts a webserver on localhost to test the website" dependsOn jalviewjsSitePath doLast { @@ -798,8 +904,8 @@ task ideBuildSite { dependsOn jalviewjsUnzipFiles dependsOn jalviewjsCopyResources dependsOn jalviewjsCopySiteResources - dependsOn ideSetup - dependsOn ide + // see project.afterEvaluate + //dependsOn ideJalviewjsBuild } @@ -811,14 +917,25 @@ task jalviewjs { project.afterEvaluate { - tasks.findByName('ideJalviewjsBuild').dependsOn eclipseProject - tasks.findByName('ideJalviewjsBuild').dependsOn eclipseClasspath - tasks.findByName('ideJalviewjsBuild').dependsOn eclipseJdt - //tasks.findByName('ideJalviewjsBuild').dependsOn ideSetup - - tasks.findByName('ide').dependsOn eclipseProject - tasks.findByName('ide').dependsOn eclipseClasspath - tasks.findByName('ide').dependsOn eclipseJdt + + tasks.findByName('eclipse').dependsOn tasks.findByName('jalviewjsCreateJ2sSettings') + + if (useIde) { + tasks.findByName('ideJalviewjsImport').dependsOn eclipseProject + tasks.findByName('ideJalviewjsImport').dependsOn eclipseClasspath + tasks.findByName('ideJalviewjsImport').dependsOn eclipseJdt + tasks.findByName('ideJalviewjsImport').dependsOn jalviewjsSetEclipseWorkspace + + tasks.findByName('ideJalviewjsBuild').dependsOn tasks.findByName('ideJalviewjsImport') + tasks.findByName('ideJalviewjsBuild').dependsOn tasks.findByName('jalviewjsCreateJ2sSettings') + + tasks.findByName('ide').dependsOn eclipseProject + tasks.findByName('ide').dependsOn eclipseClasspath + tasks.findByName('ide').dependsOn eclipseJdt + + ideBuildSite.dependsOn tasks.findByName('ideJalviewjsBuild') + } + }