The ABL base plugin provides configurations which can be used to manage PL file dependencies. Further sections provide the list of configutations that handle PL dependencies.

pl

Use this configuration to specify PL files dependencies containing only r-code. The PL files automatically download from a repository. These dependencies can then be used to configure the PROPATH of the AVM in different tasks (for example, while creating compile tasks using ABLCompile).

Example
//declare repositories 

repositories { 

	maven { 
		url ='<maven repo url>' 
		metadataSources { 
			artifact()//needed to downloaded artifacts (like .pl file) without a pom file in the repository 
		} 
	} 
} 

//define the dependencies 
dependencies { 
	pl("progress.openedge.oedf.test.apps:avengers:1.0.0@pl") 
}
task myCompileTask1(type: ABLCompile){ 
	source("src/") 
	propath(files(configurations.pl.files)) 
} 

The configurations.pl.files returns a set of PL files defined using the pl configuration and these PL files are directly added to the PROPATH. AVM cannot recognize non r-code files inside the PL and you should use plSource to manage such dependencies.

pl source

Use the plSource configuration to specify PL files containing source files (such as ABL sources, image files, config files, and so on). The PL files are automatically downloaded from a repository and then extracted using the ExtractPLTransform transform. Use the extracted directory of these dependencies to configure the PROPATH of the AVM in different tasks (for example, while creating compile tasks using ABLCompile).

Example
//declare repositories 
repositories { 
	maven { 
		url ='<maven repo url>' 
		metadataSources { 
			artifact()//needed to downloaded artifacts (like .pl file) without a pom file in the repository 
		} 
	} 
} 

//define the dependencies 
dependencies { 
	pl("progress.openedge.oedf.test.apps:avengers:1.0.0@pl") 
	plSource("progress.openedge.oedf.test.apps:avengers:1.0.0:sources@pl") 
} 

task myCompileTask2(type: ABLCompile){ 
	source("src/") 
	propath(files(configurations.pl.files)) 
	propath(files(configurations.plSource.files)) 
} 

The configurations.plSource.files returns a set of directories where PL files defined using the plSource configuration are extracted. Thus, the paths to extracted directories are added to the PROPATH.