[core] Fix ycsb.sh and ycsb.bat missing core dependencies (#908)

This commit is contained in:
Kevin Risden 2018-05-18 17:33:31 -05:00 коммит произвёл Sean Busbey
Родитель 682be7fba3
Коммит 3b6059bbd8
3 изменённых файлов: 58 добавлений и 19 удалений

Просмотреть файл

@ -155,7 +155,11 @@ GOTO classpathComplete
:gotSource
@REM Check for some basic libraries to see if the source has been built.
IF EXIST "%YCSB_HOME%\%BINDING_DIR%\target\*.jar" GOTO gotJars
IF EXIST "%YCSB_HOME%\core\target\dependency\*.jar" (
IF EXIST "%YCSB_HOME%\%BINDING_DIR%\target\*.jar" (
GOTO gotJars
)
)
@REM Call mvn to build source checkout.
IF "%BINDING_NAME%" == "basic" GOTO buildCore
@ -166,7 +170,7 @@ SET MVN_PROJECT=core
:gotMvnProject
ECHO [WARN] YCSB libraries not found. Attempting to build...
CALL mvn -pl com.yahoo.ycsb:%MVN_PROJECT% -am package -DskipTests
CALL mvn -Psource-run -pl com.yahoo.ycsb:%MVN_PROJECT% -am package -DskipTests
IF %ERRORLEVEL% NEQ 0 (
ECHO [ERROR] Error trying to build project. Exiting.
GOTO exit
@ -178,6 +182,11 @@ FOR %%F IN (%YCSB_HOME%\core\target\*.jar) DO (
SET CLASSPATH=!CLASSPATH!;%%F%
)
@REM Core dependency libraries
FOR %%F IN (%YCSB_HOME%\core\target\dependency\*.jar) DO (
SET CLASSPATH=!CLASSPATH!;%%F%
)
@REM Database conf (need to find because location is not consistent)
FOR /D /R %YCSB_HOME%\%BINDING_DIR% %%F IN (*) DO (
IF "%%~nxF" == "conf" SET CLASSPATH=!CLASSPATH!;%%F%

Просмотреть файл

@ -184,25 +184,21 @@ if $DISTRIBUTION; then
# Source checkout
else
# Check for some basic libraries to see if the source has been built.
for f in "$YCSB_HOME"/"$BINDING_DIR"/target/*.jar ; do
if ! ls "$YCSB_HOME"/core/target/*.jar 1> /dev/null 2>&1 || \
! ls "$YCSB_HOME"/"$BINDING_DIR"/target/*.jar 1>/dev/null 2>&1; then
# Call mvn to build source checkout.
if [ ! -e "$f" ] ; then
if [ "$BINDING_NAME" = "basic" ] ; then
MVN_PROJECT=core
else
MVN_PROJECT="$BINDING_DIR"-binding
fi
echo "[WARN] YCSB libraries not found. Attempting to build..."
mvn -pl com.yahoo.ycsb:"$MVN_PROJECT" -am package -DskipTests
if [ "$?" -ne 0 ] ; then
echo "[ERROR] Error trying to build project. Exiting."
exit 1;
fi
if [ "$BINDING_NAME" = "basic" ] ; then
MVN_PROJECT=core
else
MVN_PROJECT="$BINDING_DIR"-binding
fi
done
echo "[WARN] YCSB libraries not found. Attempting to build..."
if mvn -Psource-run -pl com.yahoo.ycsb:"$MVN_PROJECT" -am package -DskipTests; then
echo "[ERROR] Error trying to build project. Exiting."
exit 1;
fi
fi
# Core libraries
for f in "$YCSB_HOME"/core/target/*.jar ; do
@ -211,13 +207,19 @@ else
fi
done
# Core dependency libraries
for f in "$YCSB_HOME"/core/target/dependency/*.jar ; do
if [ -r "$f" ] ; then
CLASSPATH="$CLASSPATH:$f"
fi
done
# Database conf (need to find because location is not consistent)
CLASSPATH_CONF=$(find "$YCSB_HOME"/$BINDING_DIR -name "conf" | while IFS="" read -r file; do echo ":$file"; done)
if [ "x$CLASSPATH_CONF" != "x" ]; then
CLASSPATH="$CLASSPATH$CLASSPATH_CONF"
fi
# Database libraries
for f in "$YCSB_HOME"/"$BINDING_DIR"/target/*.jar ; do
if [ -r "$f" ] ; then

Просмотреть файл

@ -60,6 +60,7 @@ LICENSE file.
<version>2.1.4</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
@ -68,4 +69,31 @@ LICENSE file.
</resource>
</resources>
</build>
<profiles>
<profile>
<!-- Build profile when running via yscb.sh or yscb.bat-->
<id>source-run</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>stage-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>