Maven o l'IDE non scaricano maven-jar-plugin

di il
7 risposte

Maven o l'IDE non scaricano maven-jar-plugin

Da alcuni giorni sto lottando con la mia configurazione di Docker Compose che non funziona e ho scoperto che la ragione è dovuta al fatto che l’IDE inserisce nel file jar una classe che non deve mettere. In realtà nel pom.xml ho specificato la serie di file da scartare ma se decomprimo il jar me li ritrovo tutti. Sempre nel pom.xml il plugin che ho aggiungo, proprio per eseguire questa operazione, è segnato in rosso.

        <plugins>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>/it/applicazionijava/${project.name}/CrittografarePassword.class</exclude>
                        <exclude>/it/applicazionijava/${project.name}/autenticazione_spring_security/ConfigurazioneTomcatConHttps.class</exclude>
                        <exclude>/application-sviluppo.properties</exclude>
                        <exclude>/funzioni.sql</exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
Mi sapreste dire come risolvo e qual è la causa?
A scanso di equivoci solo il seguente plugin è segnato in rosso:
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
Grazie

7 Risposte

  • Re: Maven o l'IDE non scaricano maven-jar-plugin

    iBaffiPro ha scritto:


    solo il seguente plugin è segnato in rosso:
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
    Verifica perché è segnato in rosso. Presumibilmente, c'è sicuramente un qualche messaggio più esplicativo dell'errore da qualche parte (popup, vista, console, ecc...). Mi sembrerebbe molto strano che ci sia solo un segno in rosso .. e basta.

    Poi comunque in casi di dubbi o problemi come questi, fai sempre la prova "a mano" da prompt:
    mvn clean package
    Se neanche qui ottieni il risultato che ti aspetti .... allora è più grave ....
  • Re: Maven o l'IDE non scaricano maven-jar-plugin

    IntelliJ non dice molto:
    Plugin 'org.apache.maven.plugins:maven-jar-plugin:' not found
    Plugin 'org.apache.maven.plugins:maven-jar-plugin:' not found
    Se eseguo mvn clean package l'IDE inizia a scrivere stringhe in console e non smette più. Poi mi compare un messaggio di memoria piena, la CPU nel frattempo arriva a 100%, poi si blocca tutto e va tutto in crash.
    avviso.png
    avviso.png

  • Re: Maven o l'IDE non scaricano maven-jar-plugin

    iBaffiPro ha scritto:


    Se eseguo mvn clean package l'IDE inizia a scrivere stringhe in console e non smette più.
    Intendevo da console di sistema ... fuori da un qualunque IDE.
  • Re: Maven o l'IDE non scaricano maven-jar-plugin

    andbin ha scritto:


    iBaffiPro ha scritto:


    Se eseguo mvn clean package l'IDE inizia a scrivere stringhe in console e non smette più.
    Intendevo da console di sistema ... fuori da un qualunque IDE.
    mi spieghi come fare?

    devo digitare quel codice nel prompt di windows?

    devo impostare le variabili di ambiente?
  • Re: Maven o l'IDE non scaricano maven-jar-plugin

    iBaffiPro ha scritto:


    mi spieghi come fare?

    devo digitare quel codice nel prompt di windows?

    iBaffiPro ha scritto:


    devo impostare le variabili di ambiente?
    Sì, ovviamente.
    JAVA_HOME=home di installazione del JDK
    MAVEN_HOME=home di installazione di Maven
    In PATH i percorsi %JAVA_HOME%\bin e %MAVEN_HOME%\bin

    Avere JDK/Maven/ecc... a portata di mano da prompt/console di sistema è comunque una buona cosa da avere sempre per chiunque sviluppa in Java .....
    Io sul pc da cui sto scrivendo ho 11 JDK (tutti dal 8 al 18) e 3 versioni di Maven. E da prompt li scelgo usando dei .bat che mi son fatto.

    Se esternamente all'IDE funziona, allora il problema è nel IDE. A quel punto: a) chiudi il progetto nel IDE, b) elimina dal progetto SOLO i file/directory specifici del IDE, c) reimporta il progetto Maven nel IDE.
    Se neanche così funziona di nuovo, allora è proprio l'IDE che si è incriccato.
  • Re: Maven o l'IDE non scaricano maven-jar-plugin

    Grazie per il tuo aiuto, problema risolto ma non avevo dubbi.

    Ho impostato le variabili di ambiente e generato il jar corretto.
    Il problema era sull'IDE.
    Ho ricreato il progetto su IntelliJ e ho risolto anche sull'IDE.
    Restavano gli avvisi rossi ma i file venivano regolarmente inclusi.
    Ho provato ad aggiungere:
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.2.2</version>
    e ho risolto tutto anche sull'IDE.
    La domanda però è questa: devo definire la versione del plugin oppure no? Non è Maven che dovrebbe sceglierla in automatico? Insomma, per tagliar corto, non sono convinto di aver fatto cosa buona e giusta.
  • Re: Maven o l'IDE non scaricano maven-jar-plugin

    iBaffiPro ha scritto:


    devo definire la versione del plugin oppure no? Non è Maven che dovrebbe sceglierla in automatico?
    La versione di un artifact è un elemento obbligatorio per Maven. Le "coordinate" di un artifact sono rappresentate da groupId/artifactId/version. Questa terna deve sempre essere nota a Maven, altrimenti non fa alcun build.

    Maven generalmente NON sceglie lui la versione da scaricare, a meno di usare i "range" version (come indicato da documentazione Dependency Version Requirement Specification) che però si usano moooolto raramente (praticamente mai ..).

    Con Spring Boot le cose sono un pochino diverse e te lo avevo già spiegato (più volte ..). Spring Boot ha alla base l'artifact spring-boot-dependencies che contiene il <dependencyManagement> e il <pluginManagement> dove sono dichiarate le versioni managed ("gestite") di tantissime librerie e plugin.

    Il maven-jar-plugin ha la versione gestita nel spring-boot-dependencies, quindi nel TUO pom.xml NON è necessario dichiarare il version. E se proprio si volesse cambiare versione, mettere il <version> sarebbe errato (o per meglio dire: inappropriato). Va invece cambiato il valore della property che ha il nome esatto come indicato nel spring-boot-dependencies.
Devi accedere o registrarti per scrivere nel forum
7 risposte