Distribuzione di artefatti e dipendenze su un altro sistema con Maven

1

Sto codificando un programma Java sulla mia macchina di sviluppo. Maven impacchetta questo myjar.jar , e posso eseguirlo dalla riga di comando usando java -cp myjar.jar my.FantasticClass . Utilizza la libreria somelib.jar . Uso Maven e il progetto è ospitato su github.

Quando voglio eseguire il mio progetto sul computer di destinazione, qual è il modo migliore per andare?

Potrei impacchettare il mio codice come un barattolo, prendere il somelib.jar e spostarlo manualmente sul computer di destinazione, ma suppongo che potrei anche controllare il progetto Maven da github sul computer di destinazione, eseguirlo e avere Maven entrambi generano il jar e ottengono il file somelib.jar .

O sto semplicemente trascurando qualcosa?

    
posta Anders Johansen 09.01.2014 - 07:34
fonte

1 risposta

2

Ho trovato questa soluzione su StackOverflow - usa maven-assembly-plugin e invoco

mvn clean compile assembly:single

Quindi posso semplicemente avviare il jar in questo modo:

java -jar MyJar.jar

Ecco le aggiunte necessarie al file POM. La mia classe principale è demo.GraphTest

  <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>demo.GraphTest</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </plugin>
    </plugins>
    </build>
    
risposta data 09.01.2014 - 16:48
fonte

Leggi altre domande sui tag