Eu escrevi um código maven no netbeans que tem aproximadamente mais de 2000 linhas. Quando eu compilar no netbeans, está tudo bem, mas se eu quiser executá-lo na linha de comando, receberei os seguintes erros:
generics are not supported in -source 1.3
(use -source 5 or higher to enable generics)
ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();
generics are not supported in -source 1.3
(use -source 5 or higher to enable generics)
HashSet<Double> resid_List = new HashSet<Double>(Arrays.asList(resid_val));
generics are not supported in -source 1.3
(use -source 5 or higher to enable generics)
List<Integer> ind_ovlpList = new ArrayList<Integer>(Arrays.asList(ind_ovlp));
generics are not supported in -source 1.3
(use -source 5 or higher to enable generics)
public class ColumnComparator implements Comparator<double[]> {
annotations are not supported in -source 1.3
(use -source 5 or higher to enable annotations)
@Override
Tentei usar o Java 1.3.1, erros de compilador , mas obtive mais erros. Descobri em outras postagens que eu deveria modificar o pom.xml, mas não sei como. Aqui está o 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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>mavenmain</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>mavenmain</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>gov.nist.math</groupId>
<artifactId>jama</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
</project>
Seria ótimo se você pudesse me ajudar.
Respostas:
Veja a página de configuração para o plugin do compilador maven:
http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html
Ah, e: não use o Java 1.3.x, as versões atuais são Java 1.7.x ou 1.8.x
fonte
O maven-compiler-plugin já está presente na dependência da hierarquia de plugins no pom.xml. Faça check-in no POM efetivo.
Em resumo, você pode usar propriedades como esta:
Estou usando o maven 3.2.5
fonte
Geralmente, você não deseja avaliar apenas a
source
versão (javac -source 1.8
por exemplo), mas deseja valorizarsource
atarget
versão e a (javac -source 1.8 -target 1.8
por exemplo).Observe que no Java 9, você tem uma maneira de transmitir informações e de uma maneira mais robusta para compatibilidade de compilação cruzada (
javac -release 9
).O Maven que envolve o
javac
comando fornece várias maneiras de transmitir todas essas opções padrão da JVM.Como especificar a versão do JDK?
Usando
maven-compiler-plugin
oumaven.compiler.source
/maven.compiler.target
properties para especificar thesource
e thetarget
são equivalentes.e
são equivalentes de acordo com a documentação do Maven do plug-in do compilador, pois
<source>
os<target>
elementos e na configuração do compilador usam as propriedadesmaven.compiler.source
emaven.compiler.target
se elas estão definidas.Sobre os valores padrão para
source
etarget
, observe que, desde o3.8.0
compilador maven, os valores padrão foram alterados de1.5
para1.6
.No maven-compiler-plugin 3.6, você tem uma nova maneira de especificar a versão Java
Você pode usar o
release
argumento :Você também pode declarar apenas a propriedade do usuário
maven.compiler.release
:Mas, neste momento, a última não será suficiente, pois a
maven-compiler-plugin
versão padrão usada não depende de uma versão recente o suficiente.O
release
argumento Maven transmiterelease
: uma nova opção padrão da JVM que poderíamos passar do Java 9:Essa maneira fornece uma maneira padrão de especificar a mesma versão para as opções
source
, thetarget
ebootstrap
JVM.Observe que especificar
bootstrap
é uma boa prática para compilações cruzadas e não será prejudicial se você também não fizer compilações cruzadas.Qual é a melhor maneira de especificar a versão do JDK?
Para Java 8 e abaixo:
Nem
maven.compiler.source
/maven.compiler.target
properties ou usando omaven-compiler-plugin
é melhor. Isso não muda nada nos fatos, pois, finalmente, as duas maneiras se baseiam nas mesmas propriedades e no mesmo mecanismo: o plug-in do compilador principal do maven.Bem, se você não precisar especificar outras propriedades ou comportamento além das versões Java no plug-in do compilador, usar dessa maneira faz mais sentido, pois é mais conciso:
Do Java 9:
O
release
argumento (terceiro ponto) é uma maneira de considerar fortemente se você deseja usar a mesma versão para thesource
e thetarget
.fonte
Eu enfrentei o mesmo problema no projeto eclipse neon simple maven java
Mas eu adiciono abaixo os detalhes dentro do arquivo pom.xml
Após clicar com o botão direito do mouse em projeto> maven> atualizar projeto (atualização de força marcada)
Resolva-me exibir erro no projeto
Espero que seja útil
Thansk
fonte
fonte