2017-01-29 4 views
0

У меня есть несколько наборов параметров в Maven проекта, ниже вы можете найти мой Poms и мой основной класс:WildFly Swarm не создает роя-банку в нескольких модулях проекте Maven

Maven проект Структуры:

родитель

- pom.xml

- веб

----- pom.xml

Родитель ПОМ:

... 
<modules> 
     <module>web</module> 
    </modules> 
    <packaging>pom</packaging> 
... 

Web-модуль pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<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> 
    <parent> 
     <artifactId>amazon-fba</artifactId> 
     <groupId>de.domain</groupId> 
     <version>1.0.0-SNAPSHOT</version> 
    </parent> 

    <packaging>jar</packaging> 

    <artifactId>web</artifactId> 

    <dependencies> 
     <!-- Provided --> 

     <!-- Java EE 7 dependency --> 
     <dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-api</artifactId> 
      <version>7.0</version> 
      <scope>provided</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.projectlombok</groupId> 
      <artifactId>lombok</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.wildfly.swarm</groupId> 
      <artifactId>logging</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.wildfly.swarm</groupId> 
      <artifactId>jsf</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>com.sun.faces</groupId> 
      <artifactId>jsf-impl</artifactId> 
      <version>2.2.14</version> 
      <scope>provided</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.wildfly.swarm</groupId> 
      <artifactId>cdi</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.wildfly.swarm</groupId> 
      <artifactId>ejb</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.wildfly.swarm</groupId> 
      <artifactId>jpa</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.wildfly.swarm</groupId> 
      <artifactId>infinispan</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.wildfly.swarm</groupId> 
      <artifactId>jaxrs-jsonp</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.wildfly.swarm</groupId> 
      <artifactId>h2</artifactId> 
      <version>2016.11.0</version> 
     </dependency> 

     <dependency> 
      <groupId>org.postgresql</groupId> 
      <artifactId>postgresql</artifactId> 
      <version>9.4.1212</version> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.wildfly.swarm</groupId> 
       <artifactId>wildfly-swarm-plugin</artifactId> 
       <configuration> 
        <mainClass>de.package.Main</mainClass> 
       </configuration> 
       <executions> 
        <execution> 
         <id>package</id> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 

</project> 

Мой главный класс:

public class Main { 

    private static final String WEBAPP_SRC = "web/src/main/webapp"; 

    public static void main(String[] args) throws Exception { 
     Swarm swarm = new Swarm(args); 
     swarm = buildSwarmFractions(swarm); 

     WARArchive warArchive = buildDeployment(); 

     swarm.start() 
      .deploy(warArchive); 
    } 

    private static Swarm buildSwarmFractions(Swarm swarm) { 
     return swarm 
      .fraction(new DatasourcesFraction() 
       .dataSource(new DataSource(...) 
        .connectionUrl(...) 
        .driverName(...) 
        .userName(...) 
        .password(...))); 
    } 

    private static WARArchive buildDeployment() throws Exception { 
     ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); 
     URL persistenceFile = classLoader.getResource("META-INF/persistence.xml"); 

     return ShrinkWrap.create(WARArchive.class) 
      .addAsResource(new File(persistenceFile.toURI()), "META-INF/persistence.xml") 
      .addAllDependencies() 
      .addPackages(true, "de.mypackage") 
      .merge(ShrinkWrap.create(GenericArchive.class) 
       .as(ExplodedImporter.class) 
       .importDirectory(WEBAPP_SRC).as(GenericArchive.class), "/", Filters.includeAll()); 
    } 
} 

я могу запустить Главный класс от IntelliJ с любые проблемы. Я попробовал несколько команд maven в родительской и веб-папке. Однако я не могу создать файл -swarm.jar (Uberjar). Я пробовал разную упаковку (jar/war) без успеха. То, что я хочу достичь, это:

  • Возможность запуска главного метода от IntelliJ
  • Генерирование Uberjar я могу назвать с (Java -jar)

-сдаточной документации государств WildFly Рой, что беговой Предполагается, что пакет mvn будет генерировать uberjar. Есть ли что-то, чего я не вижу в Документах?

Любая помощь приветствуется.

+0

Это скорее догадка, чем что-либо, но вы пробовали изменения '' в вашей WAR ПОМ в 'war' вместо' jar'? –

ответ

1

-swarm.jar не получил генерироваться, потому что у меня были неправильные казни в моем веб/pom.xml

<build> 
     <finalName>web</finalName> 
     <plugins> 
      <plugin> 
       <groupId>org.wildfly.swarm</groupId> 
       <artifactId>wildfly-swarm-plugin</artifactId> 
       <configuration> 
        <mainClass>de.kevcodez.amazonfba.Main</mainClass> 
       </configuration> 
       <executions> 
        <execution> 
         <goals> 
          <goal>package</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 

После изменения этого, я также должен был изменить свой основной класс для того, чтобы развернуть должным образом. Это мой работает Основной класс:

public static void main(String[] args) throws Exception { 
     Swarm swarm = new Swarm(args); 
     swarm = buildSwarmFractions(swarm); 

     WebArchive webArchive = ShrinkWrap.createFromZipFile(WebArchive.class, new File("web/target/web.war")); 

     swarm.start() 
      .deploy(webArchive); 
    } 

    private static Swarm buildSwarmFractions(Swarm swarm) { 
     return swarm 
      .fraction(new DatasourcesFraction() 
       .dataSource(...)); 
    } 
Смежные вопросы