$ mvn archetype:generate \
-DarchetypeArtifactId=wildfly-subsystem \
-DarchetypeGroupId=org.wildfly.archetypes \
-DarchetypeVersion=8.0.0.Final \
-DarchetypeRepository=http://repository.jboss.org/nexus/content/groups/public
创建初始工程
通过如下 mvn 命令创建初始化工程:
mvn 会提示输入相关的信息,如下所示:
名称 | 输入值 |
---|---|
'groupId' |
com.acme.corp |
'artifactId' |
acme-subsystem |
'version' |
|
'package' |
com.acme.corp.tracker |
'module' |
com.acme.corp.tracker |
创建初始化工程完成以后,进入该项目根目录,运行 mvn install
编译:
$ mvn install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building WildFly: Subsystem Artifact 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
....
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.acme.corp.tracker.extension.SubsystemBaseParsingTestCase
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.154 sec - in com.acme.corp.tracker.extension.SubsystemBaseParsingTestCase
Running com.acme.corp.tracker.extension.SubsystemParsingTestCase
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.11 sec - in com.acme.corp.tracker.extension.SubsystemParsingTestCase
Results :
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ acme-subsystem ---
[INFO] Building jar: /home/kylin/tmp/acme-subsystem/target/acme-subsystem.jar
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (build-dist) @ acme-subsystem ---
[INFO] Executing tasks
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:05 min
[INFO] Finished at: 2016-03-12T17:13:12+08:00
[INFO] Final Memory: 29M/194M
版本控制
通常在 WildFly 上扩展 subsystem 需要注意对应的 wildfly-controller
和 wildfly-server
的版本, 如上在 创建初始工程 中创建的工程,它对应的 wildfly-controller
和 wildfly-server
的版本较老,如果要将扩展的 subsystem 部署到 WildFly 10,则开发过程中 wildfly-controller
和 wildfly-server
的版本应和 WildFly 10 对应。参照下表对依赖的版本进行控制。
WildFly Dist | WildFly 版本 | WildFly Core 版本 |
---|---|---|
wildfly-10.0.0.Final |
2.0.10.Final |
|
wildfly-9.0.2.Final |
1.0.2.Final |
|
wildfly-9.0.0.Final |
1.0.0.Final |
|
wildfly-8.2.0.Final |
8.2.0.Final |
从 WildFly 9.0 之后 wildfly-controller
, wildfly-server
等核心 API 被抽取成为 WildFly Core, 所有我们需要引入 WildFly Core 相关的依赖包如下
<dependency>
<groupId>org.wildfly.core</groupId>
<artifactId>wildfly-controller</artifactId>
<version>${version.org.wildfly.core}</version>
</dependency>
<dependency>
<groupId>org.wildfly.core</groupId>
<artifactId>wildfly-server</artifactId>
<version>${version.org.wildfly.core}</version>
</dependency>
<dependency>
<groupId>org.wildfly.core</groupId>
<artifactId>wildfly-subsystem-test</artifactId>
<type>pom</type>
<scope>test</scope>
<version>${version.org.wildfly.core}</version>
</dependency>
详细关于包依赖配置参照 pom.xml