@@ -99,30 +99,35 @@ export class BuildArtifactTaskProvider implements TaskProvider {
99
99
}
100
100
101
101
public static async resolveExportTask ( task : Task , type : string ) : Promise < Task > {
102
- if ( ! await languageServerApiManager . ready ( ) ) {
102
+ if ( ! await languageServerApiManager . isReady ( 1000 ) ) {
103
103
return task ;
104
104
}
105
105
const definition : IExportJarTaskDefinition = < IExportJarTaskDefinition > task . definition ;
106
106
const folder : WorkspaceFolder = < WorkspaceFolder > task . scope ;
107
- const resolvedTask : Task = new Task ( definition , folder , task . name , type ,
108
- new CustomExecution ( async ( resolvedDefinition : IExportJarTaskDefinition ) : Promise < Pseudoterminal > => {
109
- const stepMetadata : IStepMetadata = {
110
- entry : undefined ,
111
- taskLabel : resolvedDefinition . label || folder . name ,
112
- workspaceFolder : folder ,
113
- projectList : await Jdtls . getProjects ( folder . uri . toString ( ) ) ,
114
- steps : [ ] ,
115
- elements : [ ] ,
116
- classpaths : [ ] ,
117
- } ;
118
- return new ExportJarTaskTerminal ( resolvedDefinition , stepMetadata ) ;
119
- } ) ) ;
120
- resolvedTask . presentationOptions . reveal = TaskRevealKind . Never ;
121
- return resolvedTask ;
107
+ try {
108
+ const projectList = await Jdtls . getProjects ( folder . uri . toString ( ) ) ;
109
+ const resolvedTask : Task = new Task ( definition , folder , task . name , type ,
110
+ new CustomExecution ( async ( resolvedDefinition : IExportJarTaskDefinition ) : Promise < Pseudoterminal > => {
111
+ const stepMetadata : IStepMetadata = {
112
+ entry : undefined ,
113
+ taskLabel : resolvedDefinition . label || folder . name ,
114
+ workspaceFolder : folder ,
115
+ projectList : projectList ,
116
+ steps : [ ] ,
117
+ elements : [ ] ,
118
+ classpaths : [ ] ,
119
+ } ;
120
+ return new ExportJarTaskTerminal ( resolvedDefinition , stepMetadata ) ;
121
+ } ) ) ;
122
+ resolvedTask . presentationOptions . reveal = TaskRevealKind . Never ;
123
+ return resolvedTask ;
124
+ } catch ( e ) {
125
+ return task ;
126
+ }
122
127
}
123
128
124
129
public async provideTasks ( ) : Promise < Task [ ] | undefined > {
125
- if ( ! await languageServerApiManager . ready ( ) ) {
130
+ if ( ! await languageServerApiManager . isReady ( 1000 ) ) {
126
131
return undefined ;
127
132
}
128
133
const folders : readonly WorkspaceFolder [ ] = workspace . workspaceFolders || [ ] ;
@@ -134,41 +139,45 @@ export class BuildArtifactTaskProvider implements TaskProvider {
134
139
}
135
140
this . tasks = [ ] ;
136
141
for ( const folder of folders ) {
137
- const projectList : INodeData [ ] = await Jdtls . getProjects ( folder . uri . toString ( ) ) ;
138
- const elementList : string [ ] = [ ] ;
139
- if ( _ . isEmpty ( projectList ) ) {
140
- continue ;
141
- } else if ( projectList . length === 1 ) {
142
- elementList . push ( "${" + ExportJarConstants . COMPILE_OUTPUT + "}" ,
143
- "${" + ExportJarConstants . DEPENDENCIES + "}" ) ;
144
- } else {
145
- for ( const project of projectList ) {
146
- elementList . push ( "${" + ExportJarConstants . COMPILE_OUTPUT + ":" + project . name + "}" ,
147
- "${" + ExportJarConstants . DEPENDENCIES + ":" + project . name + "}" ) ;
142
+ try {
143
+ const projectList : INodeData [ ] = await Jdtls . getProjects ( folder . uri . toString ( ) ) ;
144
+ const elementList : string [ ] = [ ] ;
145
+ if ( _ . isEmpty ( projectList ) ) {
146
+ continue ;
147
+ } else if ( projectList . length === 1 ) {
148
+ elementList . push ( "${" + ExportJarConstants . COMPILE_OUTPUT + "}" ,
149
+ "${" + ExportJarConstants . DEPENDENCIES + "}" ) ;
150
+ } else {
151
+ for ( const project of projectList ) {
152
+ elementList . push ( "${" + ExportJarConstants . COMPILE_OUTPUT + ":" + project . name + "}" ,
153
+ "${" + ExportJarConstants . DEPENDENCIES + ":" + project . name + "}" ) ;
154
+ }
148
155
}
156
+ const mainClasses : IMainClassInfo [ ] = await Jdtls . getMainClasses ( folder . uri . toString ( ) ) ;
157
+ const defaultDefinition : IExportJarTaskDefinition = {
158
+ type : BuildArtifactTaskProvider . exportJarType ,
159
+ mainClass : ( mainClasses . length === 1 ) ? mainClasses [ 0 ] . name : undefined ,
160
+ targetPath : Settings . getExportJarTargetPath ( ) ,
161
+ elements : elementList ,
162
+ } ;
163
+ const defaultTask : Task = new Task ( defaultDefinition , folder , folder . name , BuildArtifactTaskProvider . exportJarType ,
164
+ new CustomExecution ( async ( resolvedDefinition : IExportJarTaskDefinition ) : Promise < Pseudoterminal > => {
165
+ const stepMetadata : IStepMetadata = {
166
+ entry : undefined ,
167
+ taskLabel : resolvedDefinition . label || folder . name ,
168
+ workspaceFolder : folder ,
169
+ projectList : projectList ,
170
+ steps : [ ] ,
171
+ elements : [ ] ,
172
+ classpaths : [ ] ,
173
+ } ;
174
+ return new ExportJarTaskTerminal ( resolvedDefinition , stepMetadata ) ;
175
+ } ) , undefined ) ;
176
+ defaultTask . presentationOptions . reveal = TaskRevealKind . Never ;
177
+ this . tasks . push ( defaultTask ) ;
178
+ } catch ( e ) {
179
+ continue ;
149
180
}
150
- const mainClasses : IMainClassInfo [ ] = await Jdtls . getMainClasses ( folder . uri . toString ( ) ) ;
151
- const defaultDefinition : IExportJarTaskDefinition = {
152
- type : BuildArtifactTaskProvider . exportJarType ,
153
- mainClass : ( mainClasses . length === 1 ) ? mainClasses [ 0 ] . name : undefined ,
154
- targetPath : Settings . getExportJarTargetPath ( ) ,
155
- elements : elementList ,
156
- } ;
157
- const defaultTask : Task = new Task ( defaultDefinition , folder , folder . name , BuildArtifactTaskProvider . exportJarType ,
158
- new CustomExecution ( async ( resolvedDefinition : IExportJarTaskDefinition ) : Promise < Pseudoterminal > => {
159
- const stepMetadata : IStepMetadata = {
160
- entry : undefined ,
161
- taskLabel : resolvedDefinition . label || folder . name ,
162
- workspaceFolder : folder ,
163
- projectList : await Jdtls . getProjects ( folder . uri . toString ( ) ) ,
164
- steps : [ ] ,
165
- elements : [ ] ,
166
- classpaths : [ ] ,
167
- } ;
168
- return new ExportJarTaskTerminal ( resolvedDefinition , stepMetadata ) ;
169
- } ) , undefined ) ;
170
- defaultTask . presentationOptions . reveal = TaskRevealKind . Never ;
171
- this . tasks . push ( defaultTask ) ;
172
181
}
173
182
return this . tasks ;
174
183
}
0 commit comments