2013-05-28 4 views
11

Уровень соответствия по умолчанию для maven равен 1,5, и каждый раз, когда я обновляю проект maven в eclipse, он устанавливает уровень соответствия от 1,6 до 1,5, что действительно раздражает меня.Установить уровень соответствия java для проектов maven в eclipse

Я знаю, что могу установить цель в 1.6 в pom-файле, но проблема в том, что я не могу установить это в родительском pom и ожидать, что дети наследуют его. Поэтому я должен сделать это для каждого модуля maven. Как я могу установить его в моем проекте maven или во всем eclipse один раз для «жизни» без изменения каждого модуля maven !?

ответ

11

Я знаю, что могу установить цель в 1.6 в файле pom, но проблема в том, что я не могу установить это в родительском помпе и ожидать, что дети наследуют его.

Установка версии <source> и <target> в родительском помпе работает.

К примеру, в моем родительском ПОМ, у меня есть:

<pluginManagement> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>2.3.2</version> 
     <configuration> 
     <source>1.6</source> 
     <target>1.6</target> 
     <encoding>UTF-8</encoding> 
     </configuration> 
    </plugin> 
    </plugins> 
</pluginManagement> 

Если у вас возникли проблемы, вы можете проверить, что:

  • ребенок задает правильную версию родителя ;
  • parent pom указывает значения source и target;
  • Вы выполнили mvn install на родительском; и
  • mvn help:effective-pom в дочернем проекте показывает ожидаемые значения источника/цели.

После изменения Poms, вам может понадобиться, чтобы выбрать оба проекта и использовать Maven-> Project Update.

+0

Это как-то странно для меня, потому что я простудился y пытался поставить выше теги в моем родительском помпе некоторое время назад, и это не сработало в то время! Но теперь он работает. Похоже, что я забыл некоторые теги xml в то время, потому что он работает сейчас. Btw. благодарим вас за помощь и сберегаем меня от необходимости устанавливать уровень соответствия java каждый раз после обновления maven! – LAC

+0

Какой файл мне нужен для размещения фрагмента XML? (Я не знаю, что такое родительский POM). –

-1

Перейдите в проект pom.xml и вставьте ниже между тегами. Затем плагин eclipse (например, m2eclipse) должен перестроить рабочее пространство.

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <encoding>UTF-8</encoding> 
      </configuration> 
     </plugin> 

    </plugins> 
</build> 

Примечание: это уровень проекта, так как затрагивается только pom.xml проекта.

+0

У меня исправлена ​​такая же проблема, чтобы поместить этот код в pom.xml – user4425403

2

Это работает для меня ..

<build> 
<finalName>ProjectName</finalName> 
<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>2.3.1</version> 
     <configuration> 
      <source>1.6</source> 
      <target>1.6</target> 
     </configuration> 
    </plugin> 
</plugins> 
</build> 
0

Другой способ (если вы не имеете уже компилятор плагин определен), чтобы установить именно эти свойства в вашем ПОМ файл:

<properties> 
    <maven.compiler.source>1.8</maven.compiler.source> 
    <maven.compiler.target>1.8</maven.compiler.target> 
</properties> 

Подробности: https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html

Смежные вопросы