JBoss 工具 / 红帽开发者工作室提供了一个 groovy 脚本,可为所有希望离线工作(在首次在线会话后)的人员预先缓存所有 JBoss 工具示例及其依赖项。例如,讲师可以下载所有必需的依赖项,然后通过闪存驱动器向他的学生提供压缩的 .m2/repository,然后所有学生都可以离线工作。
在 首选项 > JBoss 工具 > 项目范例 > 离线支持
下生成一个包含适当参数的 groovy 命令。

点击复制到剪贴板按钮,然后将剪贴板粘贴到终端中。脚本运行所在的目录中将创建 offline/ 目录。
基本上,go_offline.groovy 脚本将
-
从各种来源下载所有示例
-
对每个示例运行 maven 构建,因此
-
填充本地 Maven 存储库
要求
Une 要执行离线脚本,必须满足以下软件要求
-
JDK 8 必须在路径中可用
-
Groovy 2.4+ 必须在路径中可用
-
Maven 的最新版本必须在路径中可用(用于引导示例构建)
用法
脚本获取一列指向 项目范例说明符 的 URL 作为参数,以及一系列选项。
用法
groovy -Dgrape.config="/path/to/grapeconfig.xml" "/path/to/offline/go_offline_version.groovy" url1 url2 ... urlN
强烈建议设置 -Dgrape.config
系统属性,以避免groovy 依存解析问题。此 配置 是一个不错的参考。
脚本支持以下选项
-
-h
(或--help
):显示帮助 -
-q
(或--quiet
) :静默模式(精简控制台输出),默认为 false -
-c
(或--clean
):清理离线目录,默认为 false -
-od
(或--offline-dir
):基本离线目录,默认为./offline
-
-s
(或--settings
):自定义 Maven settings.xml 的路径,声明代理设置、Maven 存储库 -
-m
(或--maven
):Maven 版本,用于构建示例,默认为 3.3.3 -
-u
(或--url
):Quickstarts 搜索 URL,匹配 Searchisko 格式。(例如 此查询)
项目示例 XML 描述符格式
xml 描述符格式没有 XSD,但应该包含 project
节点列表。3 个可能 importType
值
-
zip(默认,所以可选):示例定义将下载并解压缩的 zip 文件的 URL;
-
maven:示例定义将下载、解压缩并通过 Maven 构建的 zip 文件的 URL
-
mavenArchetype:示例包含 Maven archetype 的 Maven 坐标(组 ID、构件 ID、版本)。将基于该 archetype 构建项目。
以下内容提供描述符中支持的 3 种项目类型的示例
<projects>
<project>
<!-- importType>zip</importType -->
<url>http://foo/bar/example.zip</url>
</project>
<project>
<importType>maven</importType>
<url>http://foo/bar/maven-example.zip</url>
</project>
<project>
<importType>mavenArchetype</importType>
<mavenArchetype>
<archetypeGroupId>some.groupId</archetypeGroupId>
<archetypeArtifactId>some.artifactId</archetypeArtifactId>
<archetypeVersion>X.Y.Z</archetypeVersion>
</mavenArchetype>
</project>
...
</projects>
已排除的示例
一些旧示例已从项目构建列表中排除,因为它们已损坏。此列表以硬编码形式包含在 go_offine.groovy 脚本中。你可能需要在某个时间手动编辑它。
-
jboss-errai-kitchensink-archetype,
-
picketlink-authorization-drools,
-
jboss-push-contacts-mobile-android,
-
jboss-push-helloworld-android,
-
cdi-scopes-portlet,
-
jsf2-rf4-hello-world-portlet,
-
cdi-jsf-portlet,
-
page-composition-api-portlet,
-
sample-portal,
-
cdi-generic-portlet,
-
navigation-api-portlet,
-
simplest-hello-world-portlet,
-
portal-extension,
-
jsf2-hello-world-portlet,
-
social-portlets,
-
jboss-servlet-security-genericheader-auth