Domanda

Non capisco. Ho impostato il mio Pom.xml per utilizzare il plugin Maven Exec in modo da poter eseguire alcune delle classi nel mio progetto con il corretto classpath, -d definisce e -javaagent. Quindi da un guscio con le lezioni integrate ./target/classes ecc .. Posso eseguire i metodi principali () usando

mvn exec:java -Dexec:mainClass=classWithAMainMethod
.

Tutto bene finora.

Ora voglio spedire il mio progetto (un artefatto del barattolo) e voglio ancora essere in grado di utilizzare la configurazione che ho inserito in Pom.XML per eseguire le classi con gli argomenti corretti ecc. Come faccio a fare It? C'è un modo per rimanere

mvn -artifactJar=MyArtifact.jar exec:java -Dexec:mainClass=classWithAMainMethod
.

Quando tutto ciò che ho è myartiffact.jar (o un repository Maven con myArtifact.jar in esso) ??

Ho provato quanto segue:

    .
  • Prendi il barattolo con la dipendenza: ottenere obiettivo e decomprimere. Non posso fare nulla con esso Come il Pom.XML sembra finire in Meta-Inf / Maven nel barattolo dell'artifatto. C'è un modo per usarlo?

  • Creare un POM fittizio dove voglio eseguire il mio progetto con una sola dipendenza dal mio artefatto dei miei progetti. Posso quindi utilizzare Exec: Java per eseguire le classi principali, ma non è dotato della configurazione dai miei progetti POM.

    Grazie.

È stato utile?

Soluzione 2

Il plugin Appassemblatore ha funzionato abbastanza bene per me.Ho sostituito il Config Exec Plugin nel POM del mio progetto con qualcosa del genere nella sezione Build:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>appassembler-maven-plugin</artifactId>
    <version>1.2.2</version>
    <configuration>
        <repositoryLayout>flat</repositoryLayout>
        <repositoryName>lib</repositoryName>
        <extraJvmArguments>
            -Djava.rmi.server.hostname=localhost
            -javaagent:${spring.javaagent.jar}
        </extraJvmArguments>
        <programs>
            <program>
                <name>foo1</name>
                <mainClass>net.foor.FooMain</mainClass>
            </program>
               ...
    </configuration>
</plugin>
.

In Eclipse ho creato un lanciatore di strumenti esterni per eseguire gli script risultanti da bersaglio / Appassemblatore / bin

Sulla macchina Volevo implementare (assumendo l'accesso al repository interno MAVEN in cui le mie dipendenze My Artifact + sono state installate / distribuite):

    .
  • Primo utilizzo wget o dipendenza MVN: Ottieni per ottenere una copia del mio barattolo di artefatto.
  • Estrai il POM. unzip -j artefact.jar * /pom.xml *
  • Esegui MVN APPASSEMBLER: Assemblare -Dassemblebledrectory=.
  • Sposta l'artefatto.jar nella directory ./lib
  • Imposta le autorizzazioni di esecuzione su script della shell generati in ./bin

Altri suggerimenti

Hai provato a usare qualcosa come onejar ?

Sembra che cosa stai cercando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top