Visualizzazione post con etichetta MAVEN. Mostra tutti i post
Visualizzazione post con etichetta MAVEN. Mostra tutti i post

domenica 23 aprile 2017

Maven project export jar con libererie esterne al jar

Tramite le seguenti impostazioni nel file pom.xml è possibile ottenere l'export del jar inserendo nel classpath del manifest la referenza alle librerie esterne.

Vediamo un esempio semplice :

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                            <overWriteReleases>false</overWriteReleases>
                            <overWriteSnapshots>false</overWriteSnapshots>
                            <overWriteIfNewer>true</overWriteIfNewer>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>logbackSample.TestLog</mainClass>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib</classpathPrefix>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>

In questo modo nel jar prodotto vediamo che sarà creata una cartella lib con tutte le librerie del progetto, mentre il manifest interno al jar avrà i seguenti valori:

Manifest-Version: 1.0

Archiver-Version: Plexus Archiver

Built-By: userdev

Class-Path: lib/logback-classic-1.0.13.jar lib/logback-core-1.0.13.jar

  lib/slf4j-api-1.7.5.jar

Created-By: Apache Maven 3.3.9

Build-Jdk: 1.8.0_72

Main-Class: logbackSample.TestLog



giovedì 15 maggio 2014

Aggiungere repository Maven prime faces

Di seguito la struttura di un file pom utilizzato per utilizzare:
  • jsf 2.0;
  • primefaces 3.5;
  • spring 3.0;
  • javamail

<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>test</groupId>
  <artifactId>webProva</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>test</name>
 <repositories>
  <repository>
<id>prime-repo</id>
<name>Prime Repo</name>
<url>http://repository.primefaces.org</url>
</repository>
</repositories>
  <dependencies>
  <dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>3.5</version>
</dependency>
<dependency>
   <groupId>com.sun.faces</groupId>
   <artifactId>jsf-api</artifactId>
   <version>2.1.11</version>
  </dependency>
  <dependency>
   <groupId>com.sun.faces</groupId>
   <artifactId>jsf-impl</artifactId>
   <version>2.1.11</version>
  </dependency>
 

   <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>3.0.5.RELEASE</version>
   </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>3.0.5.RELEASE</version>
    </dependency>
     <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-expression</artifactId>
        <version>3.0.5.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>3.0.5.RELEASE</version>
    </dependency>
    <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>3.0.5.RELEASE</version>
        </dependency>
        <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-web</artifactId>
 <version>3.0.5.RELEASE</version>
</dependency>
        <dependency> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-webmvc</artifactId> 
        <version>3.0.5.RELEASE</version>
         </dependency>
        <dependency>
 <groupId>javax.mail</groupId>
 <artifactId>mail</artifactId>
 <version>1.4</version>
</dependency>

  </dependencies>
</project>

venerdì 11 novembre 2011

Maven, installare un jar nel repository locale

Vediamo in questo post come installare un jar creato da noi nel repository locale di maven, in modo da poterlo poi allegare ad altri progetti semplicemente aggiungendo la dipendenza sul file pom (senza quindi aggiungerlo noi ogni volta tra le lib di progetto).

Per prima cosa dobbiamo assegnare un nome a:
  • groupId: di solito qui si specifica il package del nostro jar, comunque la scelta è libera;
  • artifactId: indica il nome univoco da assegnare all'artefatto, il nome deve essere univoco all'interno del groupId;
  • version;
  • packaging (es JAR,WAR, specifica l'output prodotto da Maven);
 Il jar sarà installato nel percorso M2_REPO/goupId/artifactId/version
Quindi specificare dove è presente il nostro jar file con l'opzione -Dfile=e, in alcuni casi (esempio con Maven 2.2) specificare anche l'opzione

-DgeneratePom=true

In modo da assicurarci che il POM sia generato.

Ipotizzando quindi di avere un progetto Java con una sola classe Test così creata, in un package it.prova:

package it.prova;
public class Test {

      public static void main(String[] args) {
        String v=args[0];
       
        int val=Integer.valueOf(v);
        System.out.println("Il fattoriale è "+getFattoriale((long)val)+"");
    }
    public static long getFattoriale(long n){
        if(n==1 || n==0){
            return 1;
        }
        else
        {
            return n*getFattoriale(n-1);
        }       
    }
}

Da eclipse creiamo il jar test.jar

Quindi da console digitiamo:

C:\>mvn install:install-file -Dfile=c:\test.jar -DgroupId=it.prova -DartifactId=myTest -Dversion=1.0 -Dpackaging=jar  -DgeneratePom=true

La console di esecuzione ci darà un messaggio di questo tipo:

[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'install'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO]    task-segment: [install:install-file] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [install:install-file {execution: default-cli}]
[INFO] Installing c:\test.jar to C:\Documents and Settings\user\.m2\repos
itory\it\prova\myTest\1.0\myTest-1.0.jar

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Fri Nov 11 13:06:55 CET 2011
[INFO] Final Memory: 3M/15M
[INFO] ------------------------------------------------------------------------

Quindi è possibile verificare che a livello di repository Maven locale è presente la directory evidenziata sopra in grassetto.


Il contenuto della directory è il seguente:


Come possiamo vedere è stato generato anche il pom che è così composto:

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>it.prova</groupId>
  <artifactId>myTest</artifactId>
  <version>1.0</version>
  <description>POM was created from install:install-file</description>
</project>


domenica 6 novembre 2011

Maven per Eclipse

Utilizzando Maven è possibile dato il file pom.xml generare il workspace eclipse direttamente da linea di comando posizionandosi sulla directory contenente il file pom.xml e quindi digitando:

mvn eclipse:eclipse

Viceversa per cancellare il tutto è sufficiente digitare

mvn eclipse:clear