Script para buscar uma classe em algum jar

As vezes queremos saber em qual jar esta uma determinada classe, então esta ai um script que irá ajuda-lo a encontrar!


#!/bin/sh

if [ -z "$2" ]
then
echo Usage: $0 Directory ClassName
exit 1
fi

for f in $(find $1 -name '*.jar')
do
jar tf $f | grep "$2" && echo "[in $f]"
done

Exemplo buscando nos modelos do wildfly-8.1.0.Final:

findinjar.sh . EntityManagerFactory.class
javax/persistence/EntityManagerFactory.class
[in modules//system/layers/base/javax/persistence/api/main/hibernate-jpa-2.1-api-1.0.0.Final.jar]
org/hibernate/ejb/HibernateEntityManagerFactory.class
org/hibernate/jpa/HibernateEntityManagerFactory.class
[in modules//system/layers/base/org/hibernate/main/hibernate-entitymanager-4.3.5.Final.jar]

Gerenciando variáveis de ambiente JAVA_HOME no Mac, Linux, …

java

Existem diversas formas para gerenciar variáveis de ambiente em sistema Unix, uma forma simples é:

Adicionar ao ficheiro /etc/profile (é preciso ter permissão de root).

Exemplo:

sudo vi /etc/profile

/etc/profile

JAVA_HOME=/opt/java/jdk1.7.0_80
ANT_HOME=/opt/java/apache-ant-1.9.6
M2_HOME=/opt/java/apache-maven-3.3.3

PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin:$M2_HOME/bin

export PATH JAVA_HOME ANT_HOME M2_HOME 

Pronto!

Agora só fazer um reload do ficheiro, para não ter que reiniciar a máquina! 🙂

source /etc/profile

Para testar se tudo deu certo. Verificar a versão. Exemplo

java -version
# ant -version
# mvn -version

Criando um repositório git privado na nuvem de graça

git

Neste post irei descrever como se criar um repositório git privado na nuvem de graça usando o serviço de armazenamento Dropbox, poderia ser qualquer um outro, ou até mesmo uma pasta em um servidor remoto, ou até mesmo um disco de backup.

Mas qual a vantagem disto? Pois já temos serviços muito bons que já armazenam meus repositórios na internet, como por exemplo o GitHub ( que por sinal é muito bom! ) porem só para voce armazenar projetos públicos, em que qualquer pessoa poderá ter acesso, a menos que voce pague pelo serviço.

Bom, vamos lá!

Vamos primeiro criar as pasta REMOTA onde vai ficar meu pequeno projeto privado.


# Pastas remotas
[matafe@Mauricios-MacBook-Pro:~ ] $ mkdir -p ~/Dropbox/ProjectsRepositories/myproject.git
[matafe@Mauricios-MacBook-Pro:~ ] $ cd ~/Dropbox/ProjectsRepositories/myproject.git/
[matafe@Mauricios-MacBook-Pro:~/Dropbox/ProjectsRepositories/myproject.git ] $ git --bare init
Initialized empty Git repository in /private/tmp/repo/myproject.git/

Pronto!

Agora vamos criar nosso projeto LOCAL.

#Local
[matafe@Mauricios-MacBook-Pro:~ ] $ mkdir -p ~/MyLocalProjects/
[matafe@Mauricios-MacBook-Pro:~ ] $ cd ~/MyLocalProjects/
# Criando um projeto de exemplo usando o Maven.
[matafe@Mauricios-MacBook-Pro:~/MyLocalProjects ] $ mvn archetype:generate -DgroupId=com.mycompany -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
[matafe@Mauricios-MacBook-Pro:~/MyLocalProjects ] $ cd myproject
[matafe@Mauricios-MacBook-Pro:~/MyLocalProjects/myproject ] $ git init
[matafe@Mauricios-MacBook-Pro:~/MyLocalProjects/myproject ] $ git add .
[matafe@Mauricios-MacBook-Pro:~/MyLocalProjects/myproject ] $ git commit -m 'initial commit'
[matafe@Mauricios-MacBook-Pro:~/MyLocalProjects/myproject ] $ git remote add origin  ~/Dropbox/ProjectsRepositories/myproject.git
[matafe@Mauricios-MacBook-Pro:~/MyLocalProjects/myproject ] $ git push origin master

Pronto! Seu projeto já esta seguro!

Se quiser do seu computador do trabalho ou de qualquer outro lugar ja pode clonar o seu projeto!

git clone ~/Dropbox/ProjectsRepositories/myproject.git

E então? Foi útil essa dica pra você?