Comments (2)
It is possible to achieve it with:
val runIdeWithPlugins by intellijPlatformTesting.runIde.registering {
plugins {
plugin("com.google.ide-perf:1.3.1")
}
prepareSandboxTask {
dependsOn("downloadAptosBinaries")
from("${rootDir}/cert") {
into(intellijPlatform.projectName.map { "$it/bin" })
include("**")
}
}
}
To make it more transparent, I've introduced the projectName
property (39161c0), so with the next release, you'll be able to:
val runIdeWithPlugins by intellijPlatformTesting.runIde.registering {
// ...
prepareSandboxTask {
// ...
from("${rootDir}/cert") {
into(pluginName.map { "$it/bin" })
}
}
}
from intellij-platform-gradle-plugin.
I tried to specify prepareSandboxTask {}
configuration inside the runIdeWithPlugins
task, and this indeed works, there's no need for the intellijPlatform.projectName
(sandboxSuffix
has the expected value of _runIdeWithPlugins
, and the pluginName
exists in my environment anyway). I'm going to extract the common copying code into the function and call it twice from inside the runIdeWithPlugins
and from the general prepareSandboxTask
checking for the existence of the directory.
I want to clarify that my problem is not fixed with the intellijPlatform.projectName
. I need to patch prepareSandboxTask
both for buildPlugin
and for runIde
, so in general case patching it inside the custom task does not work.
My understanding is that there's some special case code inside the gradle plugin, that creates the prepareSandboxTask_runIdeWithPlugins
custom task specifically for my runIdeWithPlugins
custom task, and it executes the body of the
prepareSandboxTask {
from("${rootDir}/cert") {
into(intellijPlatform.projectName.map { "$it/bin" })
include("**")
}
}
(which is defined outside the custom task as it's shared for the deployment and for testing). And the bug report is that sandboxSuffix
(or sandboxPluginsDirectory
for that matter) is not populated correctly at the time of execution of the body of that prepareSandboxTask_runIdeWithPlugins
.
UPD.
Ok, I think I just might be doing it incorrectly. It seems I can't really patch generated prepareSandboxTask_runIdeWithPlugins
with the root level
tasks {
prepareSandboxTask {
}
}
at all, it's never called. So to provide binaries both to the buildPlugin
and to runIde
I need to use two blocks of prepareSandboxTask
. Is that right?
from intellij-platform-gradle-plugin.
Related Issues (20)
- precompiled script plugin configuring intellijPlatform.pluginVerification.ides { } causes ConcurrentModificationException in KotlinGradleModelBuilder HOT 5
- add useInstaller to Ides extension ide helper method
- The v2.0.0 fails to resolve a snapshot build of IntelliJ Platform HOT 5
- v2: No IDE resolved for verification with the IntelliJ Plugin Verifier HOT 6
- verifyPlugin fails against ideaIC-242.20224.159-win HOT 3
- absolute path normalization in PrepareSandboxTask HOT 1
- [BUG] Creating a Intellij Plugin - Could not determine the dependencies of task ':prepareSandbox'. HOT 7
- Custom IDE sandbox directory not respected HOT 1
- Possible bug with GHA gradle caches
- How to build with one IDE, but use runIde with another? (eg for com.intellij.java) HOT 1
- Bundled plugin resolution fails with multiple calls to `localPlatformArtifacts()` HOT 1
- PrepareSandboxTask is missing outputs HOT 2
- Archive name not based on plugin configuration
- [2.0.1] ./gradlew runIde : java.nio.file.NoSuchFileException HOT 1
- Dependency com.jetbrains.intellij.java:java-compiler-ant-tasks is missing HOT 2
- Qodana code inspection fails after migrating to IntelliJ Platform Gradle Plugin HOT 2
- Why did I add custom dependency and runide OK. But after installing the plug-in run error message 'custom dependency class not found'. Why!!! HOT 3
- Can't find `performanceTesting.jar` when building against Android Studio 2024.2.1.2 HOT 1
- Enabling `teamCityOutputFormat` will not cause the build to fail
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from intellij-platform-gradle-plugin.