Предварительные требования:
1. Компилятор C. Как правило имеется в виду gcc и g++gcc --version
на CENTOS 7 мне понадобился gcc_c++ (в дополнение к установленному ранее gcc)
2. JAVA. Убедиться, что
javac -version
работает
3. PostgreSQL установлен и работает
pg_config
Файлы для разработки (.h файлы) для нашего PostgreSQL также должны быть установлены. Убедиться можно посмотрев что лежит в INCLUDEDIR-SERVER (вывод pg_config). Я раньше компилировал БД из исходников на этой машине, так что у меня эти файлы были.
4. компилятор Maven
mvn --version
Установка
git clone https://github.com/tada/pljava.gitили
git clone ssh://git@github.com/tada/pljava.git
Заходим в директорию pljava и выполняем
mvn clean install
В результате должны получить:
[INFO] PostgreSQL PL/Java ................................ SUCCESS
[INFO] PL/Java API ....................................... SUCCESS
[INFO] PL/Java backend Java code ......................... SUCCESS
[INFO] PL/Java backend native code ....................... SUCCESS
[INFO] PL/Java Deploy .................................... SUCCESS
[INFO] PL/Java Ant tasks ................................. SUCCESS
[INFO] PL/Java examples .................................. SUCCESS
[INFO] PL/Java packaging ................................. SUCCESS
Теперь:
# as root
su
PATH=$PATH:/usr/pgsql-9.4/bin
java -jar pljava-packaging/target/pljava-pg9.4-amd64-Linux-gpp.jar
# as postgres
psql
SET pljava.libjvm_location TO '/usr/lib/jvm/java-1.8.0/lib/libjvm.so';
CREATE EXTENSION pljava;
GRANT USAGE ON LANGUAGE java TO dbax;
Если все работает, можно делать
ALTER SYSTEM SET pljava.libjvm_location TO '/usr/lib/jvm/java-1.8.0/lib/libjvm.so';
или править postgresql.conf
Проверка
Для проверки можно установить тестовую схему.SELECT sqlj.install_jar(
'file:'
'/var/lib/pgsql/9.4/src/pljava-master/pljava-examples/target/pljava-examples-1.6.0-SNAPSHOT.jar',
'examples', true);
Проверить или установить search_path:
SET SEARCH_PATH=javatest,public;
SHOW search_path;
search_path ------------------ javatest, public
Установить classpath
SELECT sqlj.set_classpath('javatest', 'examples');
Проверить работу функции из тестовой схемы.
SELECT javatest.java_addone(3);
java_addone
-------------
4
Примечания:
1. Более подробно "что и зачем" описано тут.
2. Если нужно указать прокси-сервер для доступа в интернет:
- для git:
HTTP_PROXY=http://proxy.mycompany:80
$ git config --global http.proxy $HTTP_PROXY
$ git config --global http.proxy $HTTP_PROXY
(я на всякий случай указал и HTTPS)
- для maven:
правим
${user.home}/.m2/settings.xml
<settings>
<proxies>
<proxy>
<id>example-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>proxy.example.com</host>
<port>8080</port>
<username>proxyuser</username>
<password>somepassword</password>
<nonProxyHosts>www.google.com|*.example.com</nonProxyHosts>
</proxy>
</proxies>
</settings>
Комментарии
Отправить комментарий