PL/Java Instalação Ubuntu
Autor: Denis Benjamim | Publicado: 2017-07-13T11:08:00-03:00


Pré requisitos:

G++

Verificar se o g++ esta instalado no terminal com o comando
 g++ --version  


Caso não instale o pacote básico de builds
 sudo apt-get install build-essential  


E verifique novamente a se a saida é semelhante a esta a baixo se sim parabéns.
 g++ (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4  
 Copyright (C) 2013 Free Software Foundation, Inc.  
 This is free software; see the source for copying conditions. There is NO  
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  



Java
Verifica a versão do Javac no terminal com o comando.
 javac -version  


Caso não esteja instalado precisa instalar o jdk, normalmente vem instalado o OpenJDK ou &nbsp;o Oracle JDK, ja temos um tutorial aqui de como instalar o mesmo.

E verifique novamente a se a saida é semelhante a esta a baixo se sim parabéns.
 javac 1.8.0_131  




pg_config
Verificar a versao do pg_config
 pg_config  


Neste momento é possivel que apareça uma mensagem para que instale( Eu recomendo que instale mesmo se nao aparecer) o
 sudo apt-get install postgresql-server-dev-9.X 
(onde X é a sua versão do banco de dados, atualmente so temos ate a 9.6 em 07/2017)  

&nbsp;Existe inúmeras maneiras de descobrir a versão do seu banco de dados, caso não saiba qual sua versão abra uma nova query no seu Banco de dados e execute esta query ou no console:
 select version();(para versão servidor)  
 psql --version (para versão cliente)  


A Saída deve ser semelhante a :
 BINDIR = /usr/lib/postgresql/9.5/bin  
 DOCDIR = /usr/share/doc/postgresql-doc-9.5  
 HTMLDIR = /usr/share/doc/postgresql-doc-9.5  
 INCLUDEDIR = /usr/include/postgresql  
 PKGINCLUDEDIR = /usr/include/postgresql  
 INCLUDEDIR-SERVER = /usr/include/postgresql/9.5/server  
 LIBDIR = /usr/lib/x86_64-linux-gnu  
 PKGLIBDIR = /usr/lib/postgresql/9.5/lib  
 LOCALEDIR = /usr/share/locale  
 MANDIR = /usr/share/postgresql/9.5/man  
 SHAREDIR = /usr/share/postgresql/9.5  
 SYSCONFDIR = /etc/postgresql-common  
 PGXS = /usr/lib/postgresql/9.5/lib/pgxs/src/makefiles/pgxs.mk  
 CONFIGURE = '--with-tcl' '--with-perl' '--with-python' '--with-pam' '--with-openssl' '--with-libxml' '--with-libxslt' '--with-tclconfig=/usr/lib/x86_64-linux-gnu/tcl8.6' '--with-includes=/usr/include/tcl8.6' 'PYTHON=/usr/bin/python' '--mandir=/usr/share/postgresql/9.5/man' '--docdir=/usr/share/doc/postgresql-doc-9.5' '--sysconfdir=/etc/postgresql-common' '--datarootdir=/usr/share/' '--datadir=/usr/share/postgresql/9.5' '--bindir=/usr/lib/postgresql/9.5/bin' '--libdir=/usr/lib/x86_64-linux-gnu/' '--libexecdir=/usr/lib/postgresql/' '--includedir=/usr/include/postgresql/' '--enable-nls' '--enable-integer-datetimes' '--enable-thread-safety' '--enable-tap-tests' '--enable-debug' '--disable-rpath' '--with-uuid=e2fs' '--with-gnu-ld' '--with-pgport=5432' '--with-system-tzdata=/usr/share/zoneinfo' 'CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -I/usr/include/mit-krb5 -fPIC -pie -fno-omit-frame-pointer' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -L/usr/lib/mit-krb5 -L/usr/lib/x86_64-linux-gnu/mit-krb5' '--with-krb5' '--with-gssapi' '--with-ldap' '--with-selinux' 'CPPFLAGS=-D_FORTIFY_SOURCE=2'  
 CC = gcc  
 CPPFLAGS = -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include/tcl8.6  
 CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -I/usr/include/mit-krb5 -fPIC -pie -fno-omit-frame-pointer  
 CFLAGS_SL = -fpic  
 LDFLAGS = -L../../../src/common -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -L/usr/lib/mit-krb5 -L/usr/lib/x86_64-linux-gnu/mit-krb5 -Wl,--as-needed  
 LDFLAGS_EX =  
 LDFLAGS_SL =  
 LIBS = -lpgcommon -lpgport -lselinux -lxslt -lxml2 -lpam -lssl -lcrypto -lgssapi_krb5 -lz -ledit -lrt -lcrypt -ldl -lm  
 VERSION = PostgreSQL 9.5.7  



Maven
Verificar versão Maven.

 mvn --version  


Caso não esteja instalado não se preocupe temos um tutorial aqui no blog ensinando como instalar o Maven&nbsp;apos instalado &nbsp;verifique novamente a saída sera semelhante a esta:
 Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T16:39:06-03:00)  
 Maven home: /usr/local/apache-maven-3.5.0  
 Java version: 1.8.0_131, vendor: Oracle Corporation  
 Java home: /usr/lib/jvm/java-8-oracle/jre  
 Default locale: pt_BR, platform encoding: UTF-8  
 OS name: "linux", version: "4.4.0-59-generic", arch: "amd64", family: "unix"  



Instalação:

Baixando PL/Java via Git

Caso nao tenha o git instalado clique aqui para ver o tutorial de como o instalar.
 git clone https://github.com/tada/pljava.git  


Vale lembrar que vai baixar na pasta onde voce executar o comando depois entre na pasta

 cd pljava  


Agora Cruze os dedos( eu tive varios problemas), e rode o seguinte comando.
 mvn -X -Pwnosign -Dnar.cores=1 clean install  

Vou explicar um pouco sobre cada comando para voce entender o que faz.
-X : Ativa o modo debug( interessante caso aconteça erros)
-Pwnosign: Suprime avisos exagerados e desnecessarios
-Dnar.cores: Define &nbsp;a quantidade de cores que serão usado eu recomendo por 1 tive muitos problemas com esse detalhe.
clean: é para limpar &nbsp;rs
install: instalar

Se tudo correr bem no final da compilação voce terá esta mensagem.
 [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  

Parabens voce conseguiu instalar com sucesso! Enjoy.