Este artigo trata dos aspectos fundamentais da construção de um projeto Java, usando ferramentas de automação de projeto que vão além das simples tarefas de build.
ArtigosJavaAutomatizando tarefas com Maven ou Gradle
Por que eu devo ler este artigo:Este artigo trata dos aspectos fundamentais da construção de um projeto
Java, usando ferramentas de automação de projeto que vão além das simples
tarefas de build. São apresentadas, no decorrer do texto, funções automatizadas
de duas excelentes ferramentas: o Maven, amplamente utilizado por desenvolvedores
experientes em diversos projetos; e o Gradle, uma alternativa nova, poderosa e
extremamente eficiente.
Este tema é útil para desenvolvedores iniciantes ou mesmo para os mais
experientes, que realizam muitas das atividades de controle de projeto apenas
com opções oferecidas pelas IDEs. O texto propiciará o conhecimento de uma
forma de automatizar tarefas de build, teste, controle de dependências,
integração contínua e controle de versão por meio das duas ferramentas propostas,
que suportem tais atividades de apoio ao desenvolvimento.
O processo de desenvolvimento de software exige, por parte da
equipe envolvida, muita disciplina e organização. Independente de o software
ser construído por uma ou mais pessoas, todas as tarefas que envolvem o
processo de desenvolvimento necessitam de coordenação, para que ao final,
tenha-se o produto e sua construção transcorrida de maneira correta. Por mais
que seja estudada a engenharia de software,
tendo como referências renomados autores como Roger Pressman ou Ian
Sommerville, diversos fatores, como prazos, às vezes impedem de conduzir etapas
deste processo como sugerem os especialistas. Infelizmente, ainda é comum
desenvolvedores ignorarem etapas de testes de unidade. Com o “pulo” desta
etapa, quando gerada uma versão beta para demonstração ao cliente, na hora da
demonstração, é praticamente certo de o sistema falhar em algum ponto.
Quando o aprendizado de uma linguagem ou plataforma de
desenvolvimento é iniciado, normalmente a primeira implementação é o famoso “Hello, world!”. É a partir deste pequeno
exemplo que ocorre o aprofundamento do interesse e conhecimento nos aspectos
técnicos da linguagem em estudo.
É possível então exemplificar, de uma forma simples, que
entre o requisito do sistema ao aplicativo executável, têm-se as tarefas:
codificação, testes, compilação, mais testes, e o release funcionando. Claro que existem muitas outras, mas do ponto
de vista da materialização dos requisitos em um executável binário, essas
talvez sejam indispensáveis e sempre presentes no processo. Mas como realizar estas
“simples” tarefas no dia a dia? Será que se está codificando, testando,
compilando e distribuindo as aplicações da melhor forma?
O build
É possível conceituar, de maneira simplista, um build como uma das tarefas mais
importantes no processo de desenvolvimento de software, pois é ela quem constrói a aplicação, juntando todos os
componentes do projeto. Após esta etapa, o aplicativo pode ser distribuído na
forma de release. É comum se ouvir (ainda) que se não existirem erros na
codificação, certamente o build não
quebrará. Esta é uma informação falsa, pois nem sempre os erros acontecerão
apenas sintaticamente. Na maioria das vezes, erros semânticos ou durante a
integração com partes do sistema já construídas, podem sim quebrar o build.
Com isso, pode-se afirmar então que um projeto não pode ser
visto apenas como aquelas simples etapas mencionadas anteriormente. É preciso
entendê-lo como um artefato extremamente importante, “robusto” e com
complexidades no que se refere ao gerenciamento, manutenção e evolução.
O build é uma
tarefa determinante e não pode ser interpretada apenas como uma atividade de
compilação de código fonte. É uma tarefa que deve ser construída por um membro
da equipe com experiência em arquitetura de desenvolvimento de software, e que posteriormente pode ser
executada de diferentes formas, automatizadas ou por pessoas.
É comum, para usuários do sistema operacional Linux,
utilizar aplicativos que são construídos (build)
na própria máquina e depois instalados. Estes profissionais comumente baixam o
código fonte de um aplicativo e depois se utilizam de ferramentas como make e make install, para então, de fato, utilizar este aplicativo em seu
computador. Estas ferramentas normalmente automatizam o processo de build do código fonte. Esta
automatização comumente é escrita em linguagens como C, Python, Perl, ou outra
qualquer, gerando assim os arquivos binários (executáveis). Para quem já teve a
experiência com isso percebeu que, às vezes, de uma versão do sistema
operacional para outra, o mesmo aplicativo requer dependências distintas, e
este gerenciamento de dependências também pode ser controlado dentro do
processo de build.
Deste modo, um projeto Java, independente do seu grau de
complexidade ou tamanho, não tem as atividades de desenvolvimento concentradas
apenas na escrita do código fonte, teste, compilação e empacotamento para
distribuição. É preciso pensar na estrutura do projeto como algo que pode
evoluir, ou talvez ter diferentes versões, fazendo com que tarefas como o build sejam extremamente importantes e bem
arquitetadas.
O Maven
Em projetos Java, é comum a utilização de algum tipo de
ferramenta de gerenciamento que permita a condução do processo de
desenvolvimento. Muitos desenvolvedores utilizam a própria IDE para este fim, o que não deprecia
de forma alguma o produto final construído, uma vez que não é a ferramenta que
garante a qualidade do produto final, mas ajuda consideravelmente na
produtividade.
O Maven é uma destas ferramentas, que foram desenvolvidas
para auxiliar no processo de desenvolvimento de software na plataforma Java. Ela foi criada para melhorar o processo
de construção do projeto Jakarta
TURBINE, um framework Java para desenvolvimento de aplicações web.
O projeto TURBINE utilizava outra ferramenta de apoio, o ANT, porém o processo de gerenciamento
ficava muito complexo e sem um esquema padronizado, uma vez que o ANT baseia-se em tarefas e alvos, contidos
em um arquivo descritor de tarefas de build, o BUILD.XML. Deste modo os membros
do projeto TURBINE criaram o Maven para suprimir as limitações e definir uma
padronização no desenvolvimento do projeto.
Atualmente o Maven encontra-se na versão 3.0.4 (versão
disponível no momento em que este artigo é escrito) e desde o início de seu
desenvolvimento os modelos de gerenciamento de projeto foram evoluindo, até que
se oficializou como padrão o POM
(Project Object Model – Modelo
de Objeto de Projeto), que será visto em detalhes neste artigo.
Estrutura e organização de um projeto Maven
No Maven existe uma padronização da estrutura do projeto conhecida
como Modelo de Objeto de Projeto, ou simplesmente POM. Este modelo define por
meio de um arquivo XML todas as partes pertencentes ao projeto, como,
dependências, número de versão, tipo de artefato gerado (JAR, WAR ou EAR), etc.
Esta forma de definir a estrutura do projeto é chamada de Convenção sobre
Configuração, ou seja, uma maneira pré-determinada de configuração da estrutura
do projeto.
O POM é o principal ponto de partida de um projeto que será
gerenciado pelo Maven, pois é o arquivo (pom.xml)
que descreve e disponibiliza as informações e configurações do projeto. A Listagem 1 mostra a estrutura mínima deste
arquivo.
Recomendamos começar pelo Plano de Estudo Carreira Programador Front-End. Essa área da programação é mais visual e intuitiva, tornando-a ideal para iniciantes. No Front-End, você aprenderá a criar a parte visual dos sites, como layout, cores e interatividade. Depois de dominar o Front-End, você pode avançar para Programador Back-End, onde aprenderá a lidar com a lógica e o funcionamento interno dos sites, e, finalmente, para Programador Mobile, focando no desenvolvimento de aplicativos para smartphones. Nossa metodologia é estruturada de forma progressiva para garantir que você desenvolva confiança e experiência ao criar projetos reais, como sites estáticos e dinâmicos.
Em quanto tempo vou me tornar um programador?
O tempo necessário para se tornar um programador varia de acordo com a dedicação de cada estudante. Com nossa metodologia, que inclui um Plano de Estudo detalhado e suporte contínuo, você pode se tornar um programador de 6 meses a um ano, dependendo do seu ritmo e esforço. Nossa abordagem prática e orientada a projetos ajudará a acelerar seu aprendizado.
Eu preciso de um diploma de faculdade para começar a atuar como programador?
Não. Ser programador é uma excelente oportunidade para quem não possui diploma de faculdade. Muitas empresas contratam baseadas nas habilidades técnicas e experiência prática, não necessariamente em diplomas. Após conquistar uma vaga, você pode optar por complementar sua formação com um diploma.
Por que a programação se tornou a profissão mais promissora da atualidade?
A necessidade de programadores cresceu exponencialmente, especialmente após a pandemia de Covid-19, que forçou muitas empresas a se adaptarem ao digital. Com o crescimento das empresas de tecnologia, a demanda por programadores aumentou. Atualmente, há mais de 200 mil vagas abertas no Brasil devido à falta de profissionais qualificados.
Metodologia
Quais são os principais diferenciais da DevMedia?
Didática e Metodologia
Com mais de 20 anos de experiência, nossa metodologia foca em menos aulas e mais prática. Desenvolvemos dezenas de projetos e exercícios para ajudar você a se tornar um programador completo. Nossos projetos são desafiadores e autênticos, não apenas exercícios repetitivos.
Projetos reais e exercícios
Você desenvolverá diversos projetos práticos em cada carreira (Front-End, Back-End e Mobile), recebendo mentoria e suporte contínuo. A prática é essencial, e oferecemos milhares de exercícios para ajudar você a fixar o conteúdo e melhorar sua posição no ranking.
Suporte ao aluno
Nossa plataforma oferece suporte dedicado com professores experientes, respondendo suas dúvidas em menos de uma hora. Isso garante que você receba a ajuda necessária durante toda a sua jornada de aprendizado.
Gamificação
A DevMedia utiliza gamificação para tornar o aprendizado mais envolvente e motivador. Você acumula pontos e moedas por acertos, que podem ser trocados por produtos e customizações no seu card pessoal. Além disso, o sistema de ranking mensal incentiva a competição amigável e a melhoria contínua.
O que eu irei aprender estudando pela DevMedia?
Ao estudar conosco, você se tornará um programador Full Stack, dominando Front-End, Back-End e Mobile. Utilizamos a linguagem JavaScript, a mais utilizada no mercado, preparando você para criar sistemas webs e aplicativos celulares. Nossa abordagem prática inclui exercícios para fixar o conhecimento e desenvolvimento de projetos reais que te preparam, para o mercado de trabalho.
Quais as vantagens de aprender programação através da linguagem JavaScript?
Ela é Multiplataforma, ela vai te permitir programar para web e para celulares utilizando praticamente a mesma sintaxe.
Elá é Full Stack. Ela te permite criar aplicações Front-end, Back-end e Mobile. Isso acelera muito sua carreira e aumenta suas possibilidades de pegar trabalhos autônomos e conquistar uma vaga no mercado.
Ela é fácil de aprender. Como ela não exige conhecimento inicial em “Orientação a Objetos” ela se torna mais simples com uma curva de aprendizado suave e vai te permitir começar a programar mais rápido do que outras linguagens
A plataforma oferece certificados?
Sim, oferecemos dois tipos de certificados: o certificado de conclusão, que você adquire ao consumir o conteúdo, e o certificado de autoridade, que você obtém ao acertar exercícios. Ambos possuem carga horária, que pode ser utilizada para fins acadêmicos, como atividades complementares na faculdade, e também para comprovações em processos seletivos ou no seu currículo.
A plataforma tem suporte ao aluno, como funciona?
Sim, temos uma equipe de programadores pronta para ajudar com todas as suas dúvidas! Durante o horário comercial, o tempo médio de resposta é de até 10 minutos. E não se preocupe, também oferecemos suporte à noite e nos finais de semana, com um prazo de resposta um pouco maior.
A DevMedia me forma como programador Full Stack?
Sim! Oferecemos uma formação completa, do zero até Full Stack. Nosso foco é na prática, então você vai encontrar muitos exercícios e projetos reais ao longo do curso. Garantimos que você sairá com a autonomia necessária para desenvolver seus próprios projetos com confiança!
Tem horário para as aulas?
Não, não temos horários fixos para as aulas. Todo o nosso conteúdo está disponível para você acessar a qualquer momento, permitindo que você estude conforme sua própria disponibilidade e ritmo. Dessa forma, você pode integrar o aprendizado à sua rotina de maneira mais flexível e eficaz.
Por que a DevMedia não usa videoaulas em sua didática?
Nosso foco principal é formar programadores de verdade. Sabemos que o dia a dia de um programador envolve muita leitura, interpretação e escrita de código. Por isso, nosso conteúdo é desenvolvido para ambientar você nesse processo desde o início, proporcionando mais autonomia e acelerando seu aprendizado.
Na vídeo-aula é o professor que está lendo, interpretando e escrevndo o código para você, isso limita o seu progresso. Ao ler e interagir diretamente com o conteúdo, você exercita sua capacidade de leitura e concentração, além de poder avançar no seu próprio ritmo. Dessa forma, você se torna um programador mais independente e preparado para os desafios reais do mercado.
Preciso de um computador específico para estudar na DevMedia?
Não é necessário nada específico. Qualquer computador com processador atual e memória de 8 GB é suficiente.
Eu consigo estudar pelo celular?
Sim, a DevMedia possui um aplicativo que te permite seguir com seus estudos de qualquer lugar.
A DevMedia tem aplicativo?
Sim, nosso aplicativo está disponível na Play Store e na Apple Store, permitindo que você estude de forma prática e conveniente em qualquer lugar.
Preciso estar na faculdade para acompanhar os estudos na DevMedia?
Não, a faculdade não é necessária. Você não precisa de nenhum conhecimento prévio para iniciar os estudos na nossa plataforma.
Assinatura e Pagamentos
Quais são os planos de assinatura disponíveis?
Oferecemos dois tipos de planos: o plano recorrente e o plano anual. No plano recorrente, a cobrança é lançada mensalmente no cartão de crédito, necessitando apenas do limite para uma parcela. No plano anual, o valor total é lançado no cartão de crédito, parcelado em 12 vezes, e você precisa dispor do valor total no limite do seu cartão. Você também pode optar por pagar no PIX ou no Boleto parcelado (sujeito à analise de crédito)
Adquirindo o plano, terei acesso a todo o conteúdo?
Sim, ao assinar nossa plataforma, você desbloqueia acesso total a todo o nosso conteúdo, sem precisar comprar nada separadamente.
A plataforma tem planos vitalícios?
Não, nossos planos são anuais, garantindo que você tenha acesso contínuo às atualizações mais recentes e aos novos conteúdos. A tecnologia evolui rapidamente, e um plano vitalício oferece um conteúdo estático que se tornará ultrapassado em pouco tempo. Com nossos planos anuais, você está sempre à frente, aprendendo as novidades e tendências mais atuais no mundo da programação.
A DevMedia tem fidelidade?
Sim, nosso plano tem uma fidelidade de 12 meses, o que garante o tempo ideal para você explorar nosso conteúdo e desenvolver a autonomia necessária para trabalhar com programação.
Como funciona o cancelamento?
Nós garantimos seu direito de cancelamento com reembolso total dentro dos primeiros 7 dias, tanto no plano anual quanto no plano recorrente. Após esse período, se você estiver no plano recorrente e optar por cancelar antes de completar 12 meses, há uma taxa de 10% sobre o valor total. No plano anual, não há multas adicionais, mas o valor pago não é reembolsável.
Para que você aproveite ao máximo seu investimento, oferecemos suporte personalizado para orientá-lo na utilização da plataforma. Também temos a opção de transferência de titularidade do plano, permitindo que outra pessoa aproveite o restante do seu período de assinatura.
A renovação é automática?
Sim, nosso plano anual renova automaticamente após 12 meses, proporcionando conveniência e continuidade no seu aprendizado. Na renovação automática não é debitado do seu cartão as 12 parcelas. Para facilitar e não prejudicar o seu limite, a renovação é feita no modelo recorrente, cobrando uma mensalidade a cada mês.
Além disso, a renovação não tem fidelidade, oferecendo total flexibilidade. Você também tem a liberdade de desativar a renovação automática a qualquer momento, garantindo controle absoluto sobre sua assinatura.
Cadastro
Como excluir meus dados da plataforma?
Para excluir seus dados da plataforma, acesse o link : https://www.devmedia.com.br/fale-conosco/ e abra um protocolo de 'Exclusão de dados'. Nossa equipe processará a solicitação e removerá todas as informações do seu cadastro.
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com
vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa
bagagem consegui um estágio logo no início do meu primeiro
período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo. Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento! Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a
pena, pois a plataforma é bem intuitiva e muuuuito
didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito
obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento
front-end, tinha coisas que eu ainda não tinha visto. A
didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado,
adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É
um passo a passo incrível. Só não aprende quem não quer.
Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido
bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da
programação, irei assinar meu contrato como programador
graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana,
aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem
como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de
seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com
React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo
muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na
área.