Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: for the plan.

Jump to: navigation, search

Copying necessary 3rd party libs to project lib folder using PERL script


  • Save the following script as
#!/usr/bin/perl -w

use strict;

sub getLibs {
	my $lib_dir = shift;
	my @jars = `find $lib_dir -name "*.jar" -print`;
	my %LIBS = ();
	foreach my $j(@jars) {
		$j =~ s/\s+//g;
		my ($jar_name) = $j =~ /.*\/(.+?\.jar)$/;	
		$LIBS{$jar_name} = $j;
	return %LIBS;

if(@ARGV < 3) {
	print "Usage: $0 path_to_workspace path_to_lib project_name\n";

my ($workspace_dir, $lib_dir, $project_name) = @ARGV;

my %LIBS = getLibs($lib_dir);

open(D, "${workspace_dir}/${project_name}/dependencies.xml") or die $!;
my %JARS = ();
while(my $ln = <D>) {
	chomp $ln;
	if($ln =~ /\.jar/) {
		my ($jar) = $ln =~ /id=\"(.*?)\"/;

mkdir("${workspace_dir}/${project_name}/lib") unless (-d "${workspace_dir}/${project_name}/lib");

foreach my $j(keys %JARS) {
	if($LIBS{$j}) {
		if(-f "${workspace_dir}/${project_name}/lib/${j}") {
			print "$j already exists\n";
			system("chmod 755 ${workspace_dir}/${project_name}/lib/${j}");	
		else {
			system("cp $LIBS{$j} ${workspace_dir}/${project_name}/lib");
			system("chmod 755 ${workspace_dir}/${project_name}/lib/${j}");
	else {
		print "$j does not exists in $lib_dir\n";	
  • run
 ./ path_to_workspace path_to_lib project_name
 where path_to_workspace is the absolute or relative path to the eclipse workspace folder of Higgins projects
       path_to_lib is the absolute or relative path to the local folder where the 3rd party libs are saved (3rd party libs can reside under sub-directories of path_to_lib)
       project_name is the higgins project name (e.g. org.eclipse.higgins.idas.registry)

Note: This script requires cygwin (for Windows only) and PERL installed on your machine. You can get cygwin from for Windows

Back to the top