Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Copying necessary 3rd party libs to project lib folder using PERL script
{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}
- Save the following script as copyLibs.pl
#!/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";
exit(0);
}
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=\"(.*?)\"/;
$JARS{$jar}++;
}
}
close(D);
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 copyLibs.pl
./copyLibs.pl 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 http://www.cygwin.com for Windows