Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unsupported major.minor version 52.0 - Maven Error JAVA

I'm making

mvn install

and i get the error:

[ERROR] Failed to execute goal org.alfresco.maven.plugin:alfresco-maven-plugin:2.1.0:set-version (default-set-version) on project componentX-share: Execution default-set-version of goal org.alfresco.maven.plugin:alfresco-maven-plugin:2.1.0:set-version failed: Unable to load the mojo 'set-version' in the plugin 'org.alfresco.maven.plugin:alfresco-maven-plugin:2.1.0' due to an API incompatibility: org.codehaus.plexus.component.repository.exception.ComponentLookupException: org/alfresco/maven/plugin/VersionMojo : Unsupported major.minor version 52.0

But I already saw if the versions of java are equal, and it's correct.

Like:

which javac -> /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/javac

which java -> /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java

javac -> -version javac 1.7.0_79

java -> -version java version "1.7.0_79" OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-0ubuntu1.14.04.1) OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

and

mvn -v -> Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T12:57:37+01:00) Maven home: /home/patricia/Transferências/apache-maven-3.3.3 Java version: 1.7.0_79, vendor: Oracle Corporation Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre Default locale: pt_PT, platform encoding: UTF-8 OS name: "linux", version: "3.19.0-25-generic", arch: "amd64", family: "unix"

I think all it's correct. And my 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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.acme</groupId>
    <artifactId>componentX-share</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>componentX-share AMP project</name>
    <packaging>amp</packaging>
    <description>Manages the lifecycle of the componentX-share AMP (Alfresco Module Package)</description>

    <parent>
        <groupId>org.alfresco.maven</groupId>
        <artifactId>alfresco-sdk-parent</artifactId>
        <version>2.1.0</version>
    </parent>

    <!-- 
        SDK properties have sensible defaults in the SDK parent,
        but you can override the properties below to use another version.
        For more available properties see the alfresco-sdk-parent POM.
       -->
    <properties>
        <!-- The following are default values for data location and Alfresco version.
             Uncomment if you need to change
        <alfresco.version>${alfresco.community.default.version}</alfresco.version> -->

        <!-- This control the root logging level for all apps uncomment and change, defaults to WARN
            <app.log.root.level>WARN</app.log.root.level>
        -->

        <!-- Set the enviroment to use, this controls which properties will be picked in src/test/properties
             for embedded run, defaults to the 'local' environment. See SDK Parent POM for more info.
        <env>other environment name</env>
        -->

        <!-- The Maven artifact ID to use when loading the Share.WAR that the AMP should be applied to,
                    defaults to the alfresco.war artifact ID, so we need to override here. -->
        <app.amp.client.war.artifactId>${alfresco.share.artifactId}</app.amp.client.war.artifactId>

        <!-- Since Alfresco.WAR (i.e. the Repository) is already running on port 8080, we run Share.WAR on port 8081 -->
        <maven.tomcat.port>8081</maven.tomcat.port>

        <!-- Used in share-config-custom.xml. By default points to local installation of Alfresco Repo -->
        <alfresco.repo.url>http://localhost:8080/alfresco</alfresco.repo.url>
        <maven.compiler.target>1.7</maven.compiler.target>
        <maven.compiler.source>1.7</maven.compiler.source>
    </properties>

    <!-- Here we realize the connection with the Alfresco selected platform 
        (e.g.version and edition) -->
    <dependencyManagement>
        <dependencies>
            <!-- This will import the dependencyManagement for all artifacts in the selected Alfresco version/edition
                (see http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies) 
                NOTE: You still need to define dependencies in your POM, but you can omit version as it's enforced by this dependencyManagement. NOTE: It defaults 
                to the latest version this SDK pom has been tested with, but alfresco version can/should be overridden in your project's pom -->
            <dependency>
                <groupId>${alfresco.groupId}</groupId>
                <artifactId>alfresco-platform-distribution</artifactId>
                <version>${alfresco.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!-- Following dependencies are needed for compiling Java code in src/main/java;  -->
    <dependencies>
        <dependency>
            <groupId>${alfresco.groupId}</groupId>
            <artifactId>share</artifactId>
            <version>${alfresco.version}</version>
            <classifier>classes</classifier>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.extensions.surf</groupId>
            <artifactId>spring-surf-api</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- Compress JavaScript files and store as *-min.js -->
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>yuicompressor-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <!--
            Brings in the extra Enterprise specific share classes,
            if the 'enterprise' profile has been activated, needs to be activated manually. -->
        <profile>
            <id>enterprise</id>
            <dependencies>
                <dependency>
                    <groupId>${alfresco.groupId}</groupId>
                    <artifactId>share-enterprise</artifactId>
                    <version>${alfresco.version}</version>
                    <classifier>classes</classifier>
                    <scope>provided</scope>
                </dependency>
            </dependencies>
        </profile>
    </profiles>
</project>

I already try to add lines to pom.xml like:

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

that I saw in other solutions in "stackoverflow" but I can't solve the problem. I don't want to upgrade the version of Java (if it is the solution) I wanted to run in Java 7. Any idea?

If the solution is only upgrade for Java 8, say me too.

Thanks.

like image 521
PRVS Avatar asked Oct 16 '15 10:10

PRVS


1 Answers

Your problem is that Maven Alfresco Plugin 2.1.0 requires JDK 1.8 as shown in the exception (version 52.0). You can se requirements of the plugin here: Maven Alfresco PLugin Requirements

So your options are downgrade alfresco plugin version or upgrade to JDK 1.8.

like image 81
Fran Montero Avatar answered Sep 30 '22 04:09

Fran Montero