Ctrl K
ComunidadGuías…

eclipse-plugin-studio/build.gradle

Rama develop · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
sourceSets {
	main {
		java {
			exclude 'com/twinsoft/convertigo/engine/plugins/**'
			srcDir 'patch'
		}
		resources {
			exclude 'com/twinsoft/convertigo/engine/plugins/**'
			srcDir 'patch'
		}
	}
}

eclipse {
	project {
		linkedResource name: 'patch/com', type: '2', locationUri: 'PARENT-1-PROJECT_LOC/patches/src/com'
		linkedResource name: 'patch/org', type: '2', locationUri: 'PARENT-1-PROJECT_LOC/patches/src/org'
		linkedResource name: 'src/com/twinsoft/convertigo/engine', type: '2', locationUri: 'PARENT-1-PROJECT_LOC/engine/src/com/twinsoft/convertigo/engine'
		linkedResource name: 'src/com/twinsoft/convertigo/beans', type: '2', locationUri: 'PARENT-1-PROJECT_LOC/engine/src/com/twinsoft/convertigo/beans'
		// providers linked as sources only on demand (c8o.localProviders in gradle.properties)
		rootProject.localProviders.each {
			linkedResource name: it.path, type: '2', location: it.sources.path
		}
	}

	classpath {
		file {
			withXml {
				rootProject.applyLocalProvidersToClasspath(it)
				def node = it.asNode()
				node.classpathentry.findAll { it.@path.contains('lib/dependencies') }.each { depJar ->
					depJar.@sourcepath = project(':engine').tasks.findByName('dependenciesSourceJar').archiveFile.get().asFile.path
				}

				def rp = node.classpathentry.find { it.@path == 'org.eclipse.pde.core.requiredPlugins' } ?: node.appendNode('classpathentry', [kind: 'con', path: 'org.eclipse.pde.core.requiredPlugins'])
				def accessrules = rp.appendNode('accessrules')
				accessrules.appendNode('accessrule', [kind: 'accessible', pattern: 'org/eclipse/egit/ui/**'])
				accessrules.appendNode('accessrule', [kind: 'accessible', pattern: 'org/eclipse/e4/ui/**'])
				accessrules.appendNode('accessrule', [kind: 'accessible', pattern: 'org/eclipse/ui/internal/genericeditor/**'])
			}
		}
	}
}

tasks['eclipse'].dependsOn ':engine:dependenciesSourceJar'

dependencies {
	toSync project(':engine')
	toSync "${jxBrowserGroup}:jxbrowser:${jxBrowserVersion}"
	toSync "${jxBrowserGroup}:jxbrowser-swt:${jxBrowserVersion}"
	toSync 'org.apache.tomcat.embed:tomcat-embed-core:' + tomcatVersion
	toSync project.property('sapjco3Version')
	toSync 'com.convertigo.lib:jxbrowser-license:2026.04.27'
	implementation fileTree(dir: 'lib', include: '*.jar')
}

task writeManifest(dependsOn: ['copyLicense', 'syncLib', ':engine:unzipSwaggerUI']) {
	group = 'convertigo'
	
	doLast {
		def manifest = file 'META-INF/MANIFEST.MF'
		java.manifest {
			from sharedManifest
			attributes(
				'Automatic-Module-Name': 'com.twinsoft.convertigo.studio',
				'Bundle-Name': 'C-EMS studio plugin',
				'Bundle-SymbolicName': 'com.twinsoft.convertigo.studio; singleton:=true',
				'Eclipse-BundleShape': 'dir',
				'Bundle-Activator': 'com.twinsoft.convertigo.eclipse.ConvertigoPlugin',
				'Bundle-ActivationPolicy': 'lazy',
				'Bundle-ClassPath': 'bin/,icons/,tomcat/webapps/convertigo/WEB-INF/classes,lib/convertigo-eclipse.jar,lib/convertigo-provider-plugins.jar,' +
					fileTree(dir: 'lib')
					.findAll { it.name != 'convertigo-provider-plugins.jar' }
					.collect { 'lib/' + it.name }
					.toSorted {a, b -> a.startsWith('lib/convertigo') ? -1 : b.startsWith('lib/convertigo') ? 1 : a <=> b }
					.join(','),
				'Require-Bundle': ['org.eclipse.core.expressions',
					'org.eclipse.core.resources',
					'org.eclipse.core.runtime',
					'org.eclipse.debug.ui',
					'org.eclipse.e4.ui.css.core',
					'org.eclipse.e4.ui.css.swt',
					'org.eclipse.e4.ui.css.swt.theme',
					'org.eclipse.e4.ui.model.workbench',
					'org.eclipse.e4.ui.workbench',
					'org.eclipse.egit.core',
					'org.eclipse.egit.ui',
					'org.eclipse.emf.common',
					'org.eclipse.emf.ecore',
					'org.eclipse.jface.text',
					'org.eclipse.jgit',
					'org.eclipse.search',
					'org.eclipse.swt',
					'org.eclipse.ui',
					'org.eclipse.ui.console',
					'org.eclipse.ui.editors',
					'org.eclipse.ui.genericeditor',
					'org.eclipse.ui.ide',
					'org.eclipse.ui.navigator',
					'org.eclipse.ui.navigator.resources',
					'org.eclipse.ui.workbench.texteditor',
					'org.eclipse.ui.views',
					'org.eclipse.wst.sse.ui',
					'org.eclipse.wst.sse.core'
				].join(',')
			)
		}.writeTo(manifest)
		manifest.text = manifest.text.replaceAll("Import-Package: .*\\s+", "")
	}
}

task copyLicense(type: Copy, dependsOn: [':checkLicenseDate']) {
	group = 'convertigo'
	
	from('../legal/dual-license.txt') {
		rename { 'license.txt' }
	}
	into 'src/com/twinsoft/convertigo/eclipse/wizards/setup'
}

project(':engine').afterEvaluate {
	syncLib {
		// the coordinates, not the toString of the dependency objects, which changes on each build
		inputs.property('engine-dependency', project(':engine').configurations.runtimeClasspath.allDependencies.collect { "${it.group}:${it.name}:${it.version}" }.sort().join(','))
	}
}