Considere que um Analista está utilizando a ferramenta Maven...

Próximas questões
Com base no mesmo assunto
Q839364 Programação
Considere que um Analista está utilizando a ferramenta Maven e precisa definir que seu projeto depende de algumas outras ferramentas. Esta definição é feita inteiramente no POM, usando a tag <dependencies>, dentro da qual cada dependência é definida. Considere o trecho de código abaixo. 
                                      Imagem associada para resolução da questão
Em condições ideais, para que seja definido que o projeto depende do JUnit 4.12 e que o Maven adicione a dependência do JUnit apenas no momento em que os testes forem executados, garantindo que a dependência não seja adicionada no artefato que será gerado, a caixa I deve ser corretamente preenchida com
Alternativas

Comentários

Veja os comentários dos nossos alunos

Basta saber a respeito do que é uma Coordenada Maven (Maven Coordinates), que já mata a questão.

Um Maven Coordinate é composto por:

- groupId

- artifactId

- version

Todos os três são obrigatórios (Maven 2 e 3) e são o mínimo para um projeto Maven.

 

Fonte:

https://maven.apache.org/pom.html#Maven_Coordinates

Coordenada Maven (Maven Coordinates), Exemplo :

<project>

...

  <dependencies>

    <dependency>

      <groupId>log4j</groupId>

      <artifactId>log4j</artifactId>

      <version>1.2.15</version>

    </dependency>

  </dependencies>

...

</project>

Fonte: http://blog.caelum.com.br/processo-de-build-com-o-maven/

 

c-

scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases.

https://stackoverflow.com/questions/26975818/what-is-scope-under-dependency-in-pom-xml-for

Introdução a Dependências Maven e Escopo de Teste

No Maven, as dependências são declaradas no arquivo POM.xml dentro da tag <dependencies>. Cada dependência possui elementos obrigatórios como groupId, artifactId e version, além de elementos opcionais como scope que determinam quando e onde a dependência será utilizada. O escopo test é especificamente usado para dependências que devem estar disponíveis apenas durante a execução de testes, garantindo que não sejam incluídas no artefato final da aplicação.

Resolução

Para definir corretamente uma dependência do JUnit 4.12 que seja adicionada apenas durante a execução de testes, é necessário entender a estrutura padrão de uma dependência Maven e os escopos disponíveis.

A estrutura correta de uma dependência Maven inclui:

  •   <groupId>: Identifica o grupo ou organização responsável pelo projeto

  •   <artifactId>: Nome específico do artefato/biblioteca

  •   <version>: Versão específica da dependência

  •   <scope>: Define quando a dependência está disponível (opcional)

Para o JUnit 4.12, os valores corretos são:

  •   groupId: junit

  •   artifactId: junit

  •   version: 4.12

  •   scope: test

O escopo test indica que a dependência não é necessária para o uso normal da aplicação, estando disponível apenas para compilação e execução de testes. Isso garante que o JUnit não seja incluído no artefato final (JAR, WAR, etc.) que será distribuído.

Analisando as alternativas:

Letra A está incorreta pois não possui o artifactId obrigatório e usa tags inexistentes como <test>compile</test>.

Letra B está incorreta pois coloca a versão no artifactId ("junit 4.12") e usa tags inexistentes como <compile>test</compile>.

Letra C está correta, pois contém todos os elementos necessários na estrutura adequada: groupId (junit), artifactId (junit), version (4.12) e scope (test).

Letra D está incorreta pois não possui o artifactId obrigatório e usa uma tag inexistente <exclusion>system</exclusion>.

Letra E está incorreta pois coloca a versão no groupId e usa tags inexistentes como <system>test</system>.

O escopo test é fundamental neste contexto pois garante que a dependência do JUnit esteja disponível apenas durante a fase de testes, não sendo incluída no classpath de runtime nem no artefato final da aplicação. Isso é exatamente o que o enunciado solicita: "garantindo que a dependência não seja adicionada no artefato que será gerado".

Resposta: C - Perplexity

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo