У меня есть установка проекта с несколькими maven, ниже вы можете найти мои помпы и мой основной класс:
Структура проекта Maven:
Родитель
- pom.xml
- сеть
----- pom.xml
Родительский помпон:
...
<modules>
<module>web</module>
</modules>
<packaging>pom</packaging>
...
Веб-модуль 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). Разную упаковку (банку / войну) пробовал безуспешно. Я хочу добиться:
- Возможность запуска метода Main из IntelliJ
- Создайте Uberjar, с которым я могу позвонить (java -jar)
В документации WildFly Swarm указано, что запуск пакета mvn должен генерировать uberjar. Что мне не хватает в Документах?
Любая помощь приветствуется.
<packaging/>
в вашем WAR pom наwar
вместоjar
? - person James R. Perkins   schedule 31.01.2017