Set 05 2011

Maven installare i sorgenti

Tag: GeneraleGiampiero Granatella @ 09:27

Quando si fa un proprio progetto maven (ad esempio) è utile installare anche i sorgenti nel repository.

Per fare questo aggiungere un profilo al proprio pom.xml

  <profiles>
    <profile>
      <id>development</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.1.2</version>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

Set 01 2011

Rimuovere righe duplicate dentro una tabella. Problemino SQL

Tag: GeneraleGiampiero Granatella @ 20:57

PROBLEMA

Ieri sera avevo un piccolo problema e mi annoto qui la soluzione. Dovevo rimuovere delle righe duplicate da una tabella di persone importata da un foglio excel. La tabella aveva id, nome, cognome, indirizzo, email e altri dati sulla persona.

Si tratta in genere di un caso abbastanza comune in cui si vogliono rimuovere righe duplicate da una tabella, mantenendone però una (la prima o l’ultima come vedremo)

SOLUZIONE

Per pulire la tabella ho fatto l’ipotesi che nome e cognome fossero campi univoci e identificativi della riga, se a voi non bastano modificate la query aggiungendo altri campi.

Per prima cosa vediamo quante persone ho

select count(*) from model.persona

Risultato: 3806

Con la successiva query guardo quante righe dovrò cancellare. Notate che faccio sia la somma delle duplicazioni meno un count di tutti gli elementi (nome e cognome) che sono duplicati. Questo perché voglio sapere il numero esatto delle righe da cancellare.
select  sum(A.c) - count(A.c)  from (
select count(id) as c from model.persona group by cognome,nome having count(id)>1
) A

Il risultato è 279

Ora vediamo quante sono le righe che rimarranno nella tabella

select count(*) from model.persona where id not in
(
select min(id) from model.persona group by trim(’ ‘ from cognome),trim (’ ‘ from nome) –3527
)

Risultato 3527, che è appunto 3806 - 279.

Ora sapendo osa mi aspetto eseguo la query che pulisce i dati specificando di mantenere delle righe duplicate solo quella con id minore (vedi min(id)).
delete from model.persona where id not in
(
select min(id) from model.persona group by trim(’ ‘ from cognome),trim (’ ‘ from nome) –3527
)

Per sicurezza controllo non ci siano duplicati
select  count(A.c)  from (
select count(id) as c from model.persona group by cognome,nome having count(id)>1
) A

Risultato 0.


Ago 31 2011

Maven e dipendenze sui log

Tag: Tecnologia, javaGiampiero Granatella @ 13:03

Recentemente mi sono trovato con il problema di un’applicazione sviluppata con Apache Maven che aveva smesso di loggare chiedendomi un appender per log4j anche se io non l’avevo incluso.

Questo era dovuto al fatto che una delle mie dipendenze maven lo includeva. Per scovarla ho eseguito il comando:

 mvn dependency:tree

per vedere le mie dipendenze da quali artifact dipendevano.

Scovato il pacchetto ho escluso dal mio file pom.xml la sotto dipendenza al artifact log4j. Come mostro qui sotto:

<dependency>
            <groupId>net.sourceforge.jexcelapi</groupId>
            <artifactId>jxl</artifactId>
            <version>2.6.10</version>
            <scope>compile</scope>
            <exclusions>
                <exclusion>
                    <artifactId>log4j</artifactId>
                    <groupId>log4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>

Apr 28 2011

Importare i sorgenti delle dipendenze in maven

Tag: GeneraleGiampiero Granatella @ 12:55

Il comando corretto è

mvn dependency:sources

Mar 31 2011

Far funzionare l’applicazione demo “HelloWorld” di JBoss JBPM con Maven

Tag: GeneraleGiampiero Granatella @ 21:48

Volendo testare la nuova versione del motore di processo di JBoss JBPM 5.0 come spiegato nel tutorial di JBoss ho creato un progettino in Maven che potesse fare al caso mio e una piccola classe java per lanciarlo. Registro gli appunti presi per far funzionare il tutto.

Passo 1. Modifiche al pom.xml

Per creare un progetto Maven che faccia uso di JBPM sono necessarie le seguenti dipendenze e il repository di JBoss. Quindi ho aggiunto quanto segue al mio pom.xml

Continue reading “Far funzionare l’applicazione demo “HelloWorld” di JBoss JBPM con Maven”


Pagina Successiva »