Как я могу заставить maven упаковать свой проект против 1.5? - PullRequest
9 голосов
/ 20 августа 2010

Я пытаюсь скомпилировать проект maven, исходный код использует Generics и другие функции Java 1.5, что приводит к сбою сборки

В моем POM.xml я настроил конфигурацию сборки на 1.5 для свойств источника и цели, но это не решает мою проблему

Мой POM.xml правильный, или я что-то упустил?

Спасибо

<?xml version="1.0" encoding="UTF-8"?>
<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>
    <name>MyClass</name>
    <groupId>uk.co.mydomain</groupId>
    <artifactId>MyClass</artifactId>
    <version>1.0</version>

    <build>
      <finalName>MyClass</finalName>
      <plugins>
        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <configuration>
            <source>1.5</source>
            <target>1.5</target>
            <descriptors>
              <descriptor>src/main/resources/dist.xml</descriptor>
            </descriptors>
            <archive>
              <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
            </archive>
          </configuration>
        </plugin>
      </plugins>
    </build>

    <repositories>
        <repository>
            <id>sun-repo-2</id>
            <url>http://download.java.net/maven/2/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>

Вывод при попытке построить

generics are not supported in -1.3 (use -source 5 or higher to enable generics)

Ответы [ 2 ]

25 голосов
/ 20 августа 2010

Вы должны установить некоторые свойства для компиляции с Java 1.5

<properties>
    <!-- maven-compiler-plugin configuration -->
    <maven.compiler.source>1.5</maven.compiler.source>
    <maven.compiler.target>1.5</maven.compiler.target>
</properties>
16 голосов
/ 20 августа 2010

Вы настроили сборочный плагин с некоторой информацией об источнике / цели, но для настройки компиляции вам необходимо правильно настроить compiler-plugin .

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>2.3.1</version>
  <configuration>
    <source>1.5</source>
    <target>1.5</target>
  </configuration>
</plugin>

Обновление: Это должно быть объединено с плагином maven-inspecer-plugin для принудительного использования JDK 1.5 вместо использования только опции source / target в javac.

...