Comments (7)
This should be possible. Have a look at the javadoc of CompletableFuture. The whenComplete
method might be the one you're looking for.
from gradle-download-task.
@michel-kraemer Can you help to take a look?
from gradle-download-task.
@simonjhy How about this?
task downloadFile {
doLast {
try {
download.run {
src '<enter-your-url-here>'
dest layout.buildDirectory
}
} catch (e) {
println("Ignore error. Do something else instead.")
}
}
}
from gradle-download-task.
@michel-kraemer i
I tried and we can not use this way. Below is we used in our code. We add the download task in our gradle plugin, we don't drectly call download.run. https://github.com/liferay/liferay-portal/blob/7c720a2bc9c2a31d7f3ecd5144844851331557c4/modules/sdk/gradle-plugins-workspace/src/main/java/com/liferay/gradle/plugins/workspace/configurator/RootProjectConfigurator.java#L1009
from gradle-download-task.
I think what you have to do in this case is to write a custom task like this:
class MyDownload extends DefaultTask {
private def action
MyDownload() {
action = new de.undercouch.gradle.tasks.download.DownloadAction(project, this)
action.src('https://example.com/404')
action.dest(project.layout.buildDirectory)
}
@TaskAction
void download() {
action.execute(false).exceptionally(t -> {
println("Ignore error. Do something else instead.")
}).thenRun(() -> {
// copied from de.undercouch.gradle.tasks.download.Download.download()
if (action.isUpToDate()) {
getState().setDidWork(false);
}
});
}
}
The important thing here is to pass false
to action.execute
. This will make the action not throw an exception immediately but return a CompletableFuture
that completes exceptionally if the download failed and normally if it succeeded (see the method's javadoc).
I hope this helps. Let me know if it works or if you need more assistance.
from gradle-download-task.
@michel-kraemer Thank you for your help. I tested your function. When I set false to the value of execute, that will not throw any exception. I hope that I can add some logic to determine what exception I can throw in exceptionally method. For example, when netwok is borke and the download file is existed, then I don't throw exception, but I want to throw excetion when the destinantion file is not existed and the network broke.
from gradle-download-task.
Seeing the emojis you sent, it appears this solution has worked for you. I'm closing this issue. If you still have questions, feel free to comment here again.
from gradle-download-task.
Related Issues (20)
- Could not find method src() on extension 'download' HOT 2
- Download Task with Private Repo HOT 5
- Explicit file naming for src property HOT 1
- Only if Modified Recipe to then run Zip or other methods HOT 6
- Documentation unclear about `useETag` HOT 2
- Does plugin support to download file from local a relative file? HOT 6
- Configuration-cache-safe use of download and verify extensions HOT 14
- Problems when use with Kotlin Gradle Plugin 1.7.20 HOT 10
- responseInterceptor missing HOT 3
- Support progress bar when executing task via IntelliJ HOT 1
- How to send Post Body Parameter (data) HOT 4
- Downloading from Internal Repo using Token HOT 10
- untar and unxz HOT 1
- SSLPeerUnverifiedException jfrog-prod-usw2-shared-oregon-main.s3.amazonaws.com HOT 7
- query parameters in src url HOT 2
- Download plugin doesn't encoded files HOT 2
- Allow `src` to take `URI` objects HOT 1
- Cached download should be ignored if URL changes HOT 4
- Bad request after redirect HOT 15
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 gradle-download-task.