2017-08-20 1 views
0


Ich habe eine Maven basiert Vert-X-Anwendung, die eine einzelne Java Verticle enthält. Im Moment beginne ich die Anwendung mit:Wählen Sie Verticle Namen von Maven zu starten Shell

java -jar jarfile.jar 

Jetzt muss ich ein weiteres Verticle zum Projekt hinzufügen. Wie wähle ich die Verticle mit Maven zu beginnen? Danke

Antwort

1

Es gibt eine DeploymentOptions in Vertex und Vertex bietet mehrere Verticles Deployment-Option.

Betrachten wir Sie MainVerticle und andere verticle als DemoVerticle haben:

public class MainVerticle extends AbstractVerticle { 

    @Override 
    public void start(Future<Void> startFuture) throws Exception { 
    vertx = this.getVertx(); 

    // you can configure deployment option 

    final DeploymentOptions deployOptions1 = new DeploymentOptions(); 

    // using below way you can deploy multiple Verticles 
    vertx.deployVerticle(DemoVerticle.class.getName(), deployOptions1 , deployResult -> { 
       if (deployResult.succeeded()) { 
        LOG.info(" [SUCCESS] --> " + deployResult.result()); 
       } else { 
        LOG.error(" [ERROR] --> " + deployResult.cause()); 
       } 
      }); 

    } 
} 

In pom.xml Sie gerade definieren müssen Hauptklasse in Shade-Plugin starten, so in obigen Beispiel MainVerticle entsendet andere Verticles

<build> 
    . 
    . 
    . 
<plugins> 
     <!-- Shade plugin to assemble a runnable fat jar --> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-shade-plugin</artifactId> 
      <version>2.3</version> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>shade</goal> 
        </goals> 
        <configuration> 
         <transformers> 
          <transformer 
           implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
           <manifestEntries> 
            <Main-Class>${main.class}</Main-Class> 
            <Main-Verticle>com.path-of-your-package.MainVerticle</Main-Verticle> 
           </manifestEntries> 
          </transformer> 
          <transformer 
           implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
           <resource>META-INF/services/io.vertx.core.spi.VerticleFactory</resource> 
          </transformer> 
          <transformer 
           implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
           <resource>META-INF/services/org.opensaml.core.config.Initializer</resource> 
          </transformer> 
         </transformers> 
         <artifactSet> 
         </artifactSet> 
         <filters> 
          <filter> 
           <artifact>*:*</artifact> 
           <excludes> 
            <exclude>META-INF/*.SF</exclude> 
            <exclude>META-INF/*.DSA</exclude> 
            <exclude>META-INF/*.RSA</exclude> 
           </excludes> 
          </filter> 
         </filters> 
         <outputFile>${project.build.directory}/${project.artifactId}-${project.version}-fat.jar</outputFile> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

    . 
    . 
    . 
    </build> 

ich diese Hoffnung wird Ihnen helfen :)

+0

Dank laufen, und entschuldigt sich für die späte acknoledgement – Carla

+0

Ich bin froh, dass ich helfen konnte :) – Flash

Verwandte Themen