-
-
Save arehmandev/736daba40a3e1ef1fbe939c6674d7da8 to your computer and use it in GitHub Desktop.
1. Setup a project | |
2. Add groovy SDK support: | |
https://www.bonusbits.com/wiki/HowTo:Add_Groovy_SDK_to_IntelliJ_IDEA | |
3. Download http://(yourjenkinsurl)/job/(yourpipelinejob)/pipeline-syntax/gdsl | |
- this will give you the .gdsl file - download this to the src folder of your project. | |
4. Finally follow this step - right click on the src folder -> Mark directory as -> Sources Root | |
5. Now create a .groovy file and begin writing, the autocompletion will work. | |
references: | |
http://stackoverflow.com/questions/41062514/use-gdsl-file-in-a-java-project-in-intellij |
The instructions say to download the gdsl, but where and to which filename?
The instructions say to download the gdsl, but where and to which filename?
Download them from a pipeline in Jenkins (link on the left pane), filename doesn't matter. What matters is that IntelliJ recognizes the file as GDSL (thus the "gdsl" file extension. :-)
Thanks for the ideas here, I have added some other pipeline syntax.
https://gist.github.com/Mr-LiuDC/8a1fbe27e8fbd42361185b06085ef4c3
For the issue 'pipeline' cannot be applied to '(groovy.lang.Closure)'
Add: method(name: 'pipeline', type: 'Object', params: [body:'Closure'], doc: 'Pipeline root element')
@karfau I did get it working...see this project I was able to setup - https://github.com/jaydubb12/jenkins-dsl-pipelines
@gsusI i had to set the project sdk set to java 17
@ranma2913
Thanks for sharing. I came to the same solution by adding "import org.jenkinsci.plugins.workflow.libs.Library" too.
Using implementation makes sense but only if the repository/project itself contains or is the shared library groovy code (in your case it does).
I am using this notation in Gradle because I noticed that hpi files are still resolved unnecessarily:
try it out :-)
But when it comes to a consumer project using the shared library code then my suggestion is to separate the sourceSet by defining it for example like this:
Otherwise you "poison" your actual project code with shared library code, which you don't want to have in your productive environment :-)