[JAVA / MAVEN] – Projeto de exemplo de um Archetype em Java (How to create archetype – project sample)

add_archetype

Helpdev Archetype

Esse projeto pode ser utilizado como exemplo para criar seu próprio archetype, ele contém configurações de como criar uma classe com nome dinâmico, como criar variáveis para ser substituídas no código, importar README, .gitignore etc.

Especificamente nesse projeto o archetype foi definido para criar uma estrutura de pastas padronizados, criar uma Main class com o nome do projeto tudo dentro do package adequado ( group id + artifact id ), de acordo com necessidades de projetos em produção ele também cria uma pasta externa de properties com um arquivo contendo o artifact id como nome.

https://github.com/gbzarelli/archetype-java

https://github.com/gbzarelli/archetype-spring

Maven – Adicionando / Instalando um Jar no seu repositório local Maven (Generating a generic POM – install external Jar file to local repo)

mavenHá momentos em que você não tem um POM para um artefato de terceiros. Por exemplo, ao utilizar um JAR proprietário ou comercial. O install-plugin pode criar um POM genérico neste caso, que contém o conjunto mínimo de elementos POM exigidos pelo Maven, como groupId, artifactId, version, packaging. Você diz a Maven que gere um POM configurando o parâmetro generatePom como true.

Conseguimos fazer isso com o seguinte comando:

mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \
    -Dfile=home/helpdev/jars/MyLib.jar \
    -DgroupId=br.com.helpdev \
    -DartifactId=MyLib \
    -Dversion=2.0.0 \
    -Dpackaging=jar \
    -DgeneratePom=true \
    -DupdateReleaseInfo=true

#configuração para deploy em outro dir sem ser seu local repo.
#-DlocalRepositoryPath=local-maven-repo

Fonte: http://maven.apache.org/plugins/maven-install-plugin/examples/generic-pom-generation.html

Maven – Configurando proxy (Maven Configuring a proxy)

maven

Para configurar o proxy no Maven basta criar ou editar o arquivo de configuração settings.xml no diretorio: ${user.home}/.m2/settings.xml
Caso você queira configurar para apenas um projeto, é só inserir esse arquivo junto ao diretorio aonde esta seu pom.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>

Fonte: https://maven.apache.org/guides/mini/guide-proxies.html

Android Studio / Gradle / Maven – Como fazer upload de sua biblioteca em seu repositório Maven.

maven

O plugin Maven adiciona suporte para a implantação de artefatos nos repositórios Maven.

Como utilizar (inserir no build.gradle do modulo do seu projeto):
—————-

apply plugin: 'com.android.library'
apply plugin: 'maven' //ADICIONE O PLUGIN MAVEN

//CRIE O METODO ABAIXO PARA CONFIGURAR O UPLOAD:
uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: mavenLocal().getUrl()) //URL DO SEU REPO MAVEN(NO EXEMPLO ESTA USANDO O LOCAL)
            pom.artifactId ='swap_android'
            pom.groupId = 'br.com.helpdev'
            pom.version = '1.0'
        }
    }
}

Após configurado, basta sincronizar o projeto e chamar o ‘uploadArchives’: Continue reading

Java – Criando um serviço WEB para executar fora de um container java (web server standalone with grizzly-http-server / jersey-server / javax.ws.rs)

javaeeNesta publicação vamos mostrar como criar um servidor web standalone, ou seja, vamos compilar o projeto como um jar e executa-lo pelo terminal sem a necessidade de precisar dar deploy em um container java (exemplo: glassfish, toncat, etc). Para isso vamos criar um projeto java com o maven para incluir as seguintes dependências:

javax: javaee-web-api
org.glassfish.grizzly: grizzly-http-server, grizzly-framework
org.glassfish.jersey.core: jersey-server, jersey-common, jersey-client
org.glassfish.jersey.media: jersey-media-sse, jersey-media-json-processing
org.glassfish.jersey.containers: jersey-container-grizzly2-http, jersey-container-servlet

Essas dependências permitem criar um web server e subir sua aplicação em um container próprio. As dependências do javax nos permite criar o serviço web REST, a grizzly fica responsável pelo servidor web e a jersy pelo container. Nesse projeto não vamos chegar a usar todas essas dependências porem vamos deixar no projeto.

Iniciaremos o projeto configurando o pom.xml: Continue reading

Maven – Gerar uma distribuição com suas dependências / Gerar um FatJar / Configurar o JavaExec / Configurar Manifest

maven

Segue um script de configuração para compilar projetos java e gerar uma distribuição com todas dependências, com opcional de fatJar.
- Configurar o Manifest
- Configurar a execução pela IDE através do type: JavaExec
- Gerar uma distribuição com as dependências dentro da pasta libs/
- Gerar uma distribuição fatJar
- Maven Can’t execute jar- file: “no main manifest attribute”

ARQUIVO POM.XML: Continue reading