build: switch to Maven configuration for JavaIndexer

This commit is contained in:
malte_langkabel
2017-07-27 13:16:57 +02:00
parent 053ca3d8d1
commit 2e117c4b6d
51 changed files with 133 additions and 93 deletions
+1 -2
View File
@@ -13,8 +13,7 @@
/bin/test/data/temp.xml
/bin/test/data/TestSettings.xml
/java_indexer/bin/
/java_indexer/lib/
/java_indexer/target/
/setup/Linux/lib/
-57
View File
@@ -1,57 +0,0 @@
#!/bin/bash
# prerequirements: java/bin in path
ABORT="\033[31mAbort:\033[00m"
SUCCESS="\033[32mSuccess:\033[00m"
INFO="\033[33mInfo:\033[00m"
# Determine current platform
PLATFORM='unknown'
if [ "$(uname)" == "Darwin" ]; then
PLATFORM='MacOS'
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
PLATFORM='Linux'
elif [ "$(expr substr $(uname -s) 1 10)" == "MINGW32_NT" ]; then
PLATFORM='Windows'
fi
if [ $PLATFORM == "Windows" ]; then
ORIGINAL_PATH_TO_SCRIPT="${0}"
CLEANED_PATH_TO_SCRIPT="${ORIGINAL_PATH_TO_SCRIPT//\\//}"
ROOT_DIR=`dirname "$CLEANED_PATH_TO_SCRIPT"`
else
ROOT_DIR="$( cd "$( dirname "$0" )" && pwd )"
fi
ROOT_DIR=$ROOT_DIR/..
cd $ROOT_DIR
mkdir -p classes
CLASSPATH=""
if [ $PLATFORM == "Windows" ]; then
LIB_DIR="./lib/"
CLASSPATH+=$LIB_DIR"java-symbol-solver-core.jar;"
CLASSPATH+=$LIB_DIR"java-symbol-solver-logic.jar;"
CLASSPATH+=$LIB_DIR"java-symbol-solver-model.jar;"
CLASSPATH+=$LIB_DIR"javaparser-core.jar"
else
CLASSPATH+=$ROOT_DIR"/lib/java-symbol-solver-core.jar:"
CLASSPATH+=$ROOT_DIR"/lib/java-symbol-solver-logic.jar:"
CLASSPATH+=$ROOT_DIR"/lib/java-symbol-solver-model.jar:"
CLASSPATH+=$ROOT_DIR"/lib/javaparser-core.jar"
fi
javac -d ./classes -classpath $CLASSPATH src/com/sourcetrail/*.java
mkdir -p bin
cd classes
jar cvf ../bin/java-indexer.jar com/sourcetrail/*.class
cd ..
rm -rf classes
+75
View File
@@ -0,0 +1,75 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sourcetrail</groupId>
<artifactId>java-indexer</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
<name>java_indexer</name>
<url>http://maven.apache.org</url>
<properties>
<java.version>1.8</java.version>
<javasymbolsolver.version>x.x.x</javasymbolsolver.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.dummy</groupId>
<artifactId>java-symbol-solver-core</artifactId>
<version>${javasymbolsolver.version}</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/java-symbol-solver-core.jar</systemPath>
</dependency>
<dependency>
<groupId>org.dummy</groupId>
<artifactId>java-symbol-solver-logic</artifactId>
<version>${javasymbolsolver.version}</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/java-symbol-solver-logic.jar</systemPath>
</dependency>
<dependency>
<groupId>org.dummy</groupId>
<artifactId>java-symbol-solver-model</artifactId>
<version>${javasymbolsolver.version}</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/java-symbol-solver-model.jar</systemPath>
</dependency>
<dependency>
<groupId>com.github.javaparser</groupId>
<artifactId>javaparser-core</artifactId>
<version>3.2.4</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.19.0-GA</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>21.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.javaslang</groupId>
<artifactId>javaslang</artifactId>
<version>2.0.0-beta</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
-14
View File
@@ -40,20 +40,6 @@ cp setup/git/git_pre_commit_hook.sh .git/hooks/pre-commit
cp setup/git/git_pre_push_hook.sh .git/hooks/pre-push
fi
# Copy necessary jars for java indexer
echo -e $INFO "copy jars for java indexer"
mkdir -p java_indexer/lib
if [ $PLATFORM == "Windows" ]; then
cp -u -r setup/jars/windows/*.jar java_indexer/lib
elif [ $PLATFORM == "Linux" ]; then
cp -u -r setup/jars/linux/*.jar java_indexer/lib
# what about 32/64 bit?
elif [ $PLATFORM == "MacOS" ]; then
cp -r setup/jars/MacOSX/*.jar java_indexer/lib
fi
# Create Debug and Release folders
echo -e $INFO "create build folders"
if [ $PLATFORM == "Windows" ]; then
+12 -4
View File
@@ -27,13 +27,21 @@ ROOT_DIR=$ROOT_DIR/..
# Enter main directory
cd $ROOT_DIR/
cd java_indexer
echo -e $INFO "build java-indexer"
java_indexer/build/build.sh
echo "cleaning and building java_indexer.jar"
mvn clean package dependency:copy-dependencies
cd ../
echo -e $INFO "copy jars"
mkdir -p bin/app/data/java
rm -rf bin/app/data/java/*
cp -r java_indexer/lib/*.jar bin/app/data/java
cp -r java_indexer/bin/*.jar bin/app/data/java
cp -r java_indexer/target/java-indexer-1.0.jar bin/app/data/java/java-indexer.jar
cp -r java_indexer/target/dependency/guava*.jar bin/app/data/java
cp -r java_indexer/target/dependency/javaparser-core*.jar bin/app/data/java
cp -r java_indexer/target/dependency/javaslang*.jar bin/app/data/java
cp -r java_indexer/target/dependency/javassist*.jar bin/app/data/java
cp -r java_indexer/target/dependency/java-symbol-solver-core-x.x.x.jar bin/app/data/java/java-symbol-solver-core.jar
cp -r java_indexer/target/dependency/java-symbol-solver-logic-x.x.x.jar bin/app/data/java/java-symbol-solver-logic.jar
cp -r java_indexer/target/dependency/java-symbol-solver-model-x.x.x.jar bin/app/data/java/java-symbol-solver-model.jar
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+30 -8
View File
@@ -13,6 +13,21 @@
#include "utility/ResourcePaths.h"
#include "utility/utilityString.h"
std::vector<std::string> JavaParser::getRequiredJarNames()
{
std::vector<std::string> jarNames = {
"guava-21.0.jar",
"java-indexer.jar",
"javaparser-core-3.2.4.jar",
"javaslang-2.0.3.jar",
"javassist-3.19.0-GA.jar",
"java-symbol-solver-core.jar",
"java-symbol-solver-logic.jar",
"java-symbol-solver-model.jar"
};
return jarNames;
}
std::string JavaParser::prepareJavaEnvironment()
{
std::string errorString;
@@ -24,15 +39,22 @@ std::string JavaParser::prepareJavaEnvironment()
#else
const std::string separator = ":";
#endif
std::string classPath = "";
{
const std::vector<std::string> jarNames = getRequiredJarNames();
for (size_t i = 0; i < jarNames.size(); i++)
{
if (i != 0)
{
classPath += separator;
}
classPath += ResourcePaths::getJavaPath().str() + jarNames[i];
}
}
JavaEnvironmentFactory::createInstance(
ResourcePaths::getJavaPath().str() + "guava-21.0.jar" + separator +
ResourcePaths::getJavaPath().str() + "java-indexer.jar" + separator +
ResourcePaths::getJavaPath().str() + "javaparser-core.jar" + separator +
ResourcePaths::getJavaPath().str() + "javaslang-2.0.3.jar" + separator +
ResourcePaths::getJavaPath().str() + "javassist-3.19.0-GA.jar" + separator +
ResourcePaths::getJavaPath().str() + "java-symbol-solver-core.jar" + separator +
ResourcePaths::getJavaPath().str() + "java-symbol-solver-logic.jar" + separator +
ResourcePaths::getJavaPath().str() + "java-symbol-solver-model.jar",
classPath,
errorString
);
}
@@ -31,6 +31,7 @@ class FileRegister;
class JavaParser: public Parser
{
public:
static std::vector<std::string> getRequiredJarNames();
// returns: error message
static std::string prepareJavaEnvironment();
static void clearCaches();
+14 -8
View File
@@ -814,15 +814,21 @@ private:
#else
const std::string separator = ":";
#endif
std::string classPath = "";
{
const std::vector<std::string> jarNames = JavaParser::getRequiredJarNames();
for (size_t i = 0; i < jarNames.size(); i++)
{
if (i != 0)
{
classPath += separator;
}
classPath += "../app/data/java/" + jarNames[i];
}
}
JavaEnvironmentFactory::createInstance(
"../app/data/java/guava-21.0.jar" + separator +
"../app/data/java/java-indexer.jar" + separator +
"../app/data/java/javaparser-core.jar" + separator +
"../app/data/java/javaslang-2.0.3.jar" + separator +
"../app/data/java/javassist-3.19.0-GA.jar" + separator +
"../app/data/java/java-symbol-solver-core.jar" + separator +
"../app/data/java/java-symbol-solver-logic.jar" + separator +
"../app/data/java/java-symbol-solver-model.jar" + separator,
classPath,
errorString
);
}