Considere que um Analista está utilizando a ferramenta Maven...
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
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