Como fazer o build e executar pela IDE um projeto maven

Boa tarde,

Estou tentando gerar uma aplicação para estudos utilizando maven, mas esta desastroso e muito frustrante.

estou tentando criar um projeto web utilizando o maven, porem não consigo por nada fazer com que ele seja executado, porem estou tentando fazer tudo pela IDE(Eclipse), ta tentei vários web servers e web containers, mas nenhum deles sobe de fato a aplicação.

tentei configurar o wildfly de forma tradicional, assim o projeto sobe normalmente, mas ao converter o msm para maven ele para de executar, o mesmo ocorre se eu criar o projeto como sendo um projeto maven webapp.

tentei acrescentar o plugin do wildfly e posteriormente o jetty e em nenhum dos casos obtive sucesso, ao tentar “maven>update project” ele nem ao menos baixa o server, consequentemente não o executa, o mesmo ocorre com o jetty e é claro se mantem o erro:

Description Resource Path Location Type The superclass “javax.servlet.http.HttpServlet” was not found on the Java Build Path

claramente devido a falta de um web server ou servlet container

segue meu pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>br.com.lsoft</groupId>
  <artifactId>gameapi</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>gameapi Maven Webapp</name>
  <url>http://maven.apache.org</url>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies> 

  <build>
    <finalName>gameapi</finalName>

    <plugins>
        <plugin>
            <groupId>org.wildfly.plugins</groupId>
            <artifactId>wildfly-maven-plugin</artifactId>
            <version>13.0.0.Final</version>
            <configuration>
                <port>8081</port>
            </configuration>
        </plugin>
    </plugins>

  </build>
</project>

com isso me resta algumas pergunta simples:

sempre que eu for trabalhar com maven eu sou obrigado a utilizar o cmd pra compilar e executar o projeto? caso não seja, pq isso não foi demostrado na aula em questão, neste caso ja fica a sugestão pra refazer essa aula, ou criar uma a mais para este curso, ensinando como faze-lo.

ao analisar o “web.xml” criado percebi que o projeto foi criado co o padrão servlet 2.3, como faço pro projeto ser criado com uma versão posterior??? segue o web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>
1 curtida

Faltou dizer qual IDE tá usando.

verdade, vou editar o post pro pessoal não precisar procurar nas respostas, estou usando eclipse

E está com os plugins para Java EE instalado?
Se não estiver, recomendo baixar diretamente o eclipse para Java EE.

para buildar tem projeto com o maven, basta criar o projeto java como maven, ter a java_home no variável global PATH do teu sistema operacional, escolher o tipo de pacote
(war), clique com o botão direito no projeto > run As > maven Build no campo Goals, digite: clean install e dê Ok.

1 curtida

Isso é bem genérico, não? Para de funcionar por que? Erro? Log? Alguma mensagem específica na inicialização do wildfly ou do deploy do mesmo no AS?

Não, claramente por não encontrar o path do JEE (AS) ou da especificação Servlet (jetty). Esse erro ocorre ao buildar ou ao realizar o deploy?

Tá faltando dependência aí.

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>7.0</version>
    <scope>provided</scope>
</dependency>

Para o Wildfly, vai assim, para o jetty você remove a tag scope (ou muda o valor para compile).

Não, mas é uma boa prática.
Afinal, quando você está em um projeto grande, dificilmente o dev vai implementar em outros ambientes, além do próprio para desenvolvimento. Existem equipes que automatizam esse processo de promoção (DEV -> HOMOLOG -> PROD), isso é uma parte do Devops, por exemplo. Então, é muito mais comum usar os comandos, porém, isso não impede de fazê-lo pela IDE.

Botão direito do mouse sobre o projeto > preferences > project facets > desmarca a versão 2.3, clica em apply e define a versão nova (3.0), confirma clicando em apply e depois em ok.

1 curtida