docker run -p 8080:8080 savantly/nexus-command
您可以将它们设置为属性或环境变量。
nexus.modules.organizations.enabled : true # enable the organizations module
nexus.modules.projects.enabled : true # enable the projects module
nexus.modules.franchise.enabled : true # enable the franchise module
nexus.modules.web.enabled : true # enable the web module
nexus.modules.org-web.enabled : true # enable the org-web module
nexus.modules.security.enabled : true # enable the security module
有关更多配置选项,请参阅应用程序属性。
./src/main/resources/application.yml
Nexus Command 是一个多租户应用程序,提供了一个用于管理所有类型业务数据的平台。它构建在 Apache Causeway 框架之上,并为管理您自己的数据和创建自定义应用程序/集成提供了一个起点。
一个典型的用例是提供一个平台来管理业务数据、提供数据作为内容以及与第三方系统集成。
视频预览
您可以使用包含所有模块的默认 Web 应用程序,也可以创建自己的 Web 应用程序并包含您需要的任何模块。这些模块在此存储库中维护,并发布到 Maven Central。
这是一个 Apache Causeway 应用程序,使用最佳实践和约定。它利用Causeway的快速开发能力,并提供企业级功能。
它由几个模块组成,为构建您自己的应用程序提供了起点。
您可以直接使用 Web 应用程序,也可以使用自己的 Web 应用程序项目中的模块并根据您的需求进行自定义。默认 Web 应用程序可配置为根据需要包含或排除模块。
提示 | TODO:在此处添加演示网站的链接 |
安装先决条件:
Java 17 LTS(例如采用 OpenJDK 发行版)
Maven 3.6 或更高版本(下载)
克隆存储库:
git clone [email protected]:savantly-net/nexus-command.git
# or
git clone https://github.com/savantly-net/nexus-command.git
cd nexus-command
使用 Maven 构建:
mvn clean install
使用 Maven 运行:
mvn -pl webapp spring-boot:run
make build
make run-image
下载spring-instrument.jar
用于加载时编织(下面将更详细地讨论):
mvn dependency:get -DgroupId=org.springframework -DartifactId=spring-instrument -Dversion=XXX
将“XXX”更改为${spring-framework.version}
在 webapp pom.xml
中解析的值
使用 Maven 运行:
mvn -pl webapp spring-boot:run
该应用程序将在 http://localhost:8080 上提供。
浏览到 http://localhost:8080。
登录使用:
secman 超级用户:
用户名: secman-admin
密码: pass
作为 Nexus Command 管理员:
用户名: admin
密码: admin
或作为非特权用户:
用户名: user
密码: user
该应用程序在 H2 内存中运行时运行,并使用固定脚本设置示例数据。
下表解释了每个目录的内容:
此版本的应用程序使用 EclipseLink JPA 作为其 ORM,并配置了加载时编织。这要求应用程序与 Java 代理一起运行。
spring-boot 插件已配置为与此代理一起运行。如果您想从 IDE 运行:
首先,您可能希望将文件复制到本地:
cp ~ /.m2/repository/org/springframework/spring-instrument/XXX/spring-instrument-XXX.jar lib/spring-instrument.jar
将“XXX”更改为${spring-framework.version}
在 webapp pom.xml
中解析的值
然后将代理指定为 VM 选项:
-javaagent:lib/spring-instrument.jar
该应用程序具有单元测试和集成测试。
测试类型 | 报告 | 阶段 | 跳过使用 |
---|---|---|---|
单元测试 |
| | |
积分测试 |
| | |
例如,这些输出可以在连续管道内处理/发布。
Apache Causeway 使用 GNU .po 文件支持 i18n。 WEB-INF/translations.po
是后备(空值意味着密钥“按原样”使用),而WEB-INF/translations-XX.po
文件提供每个“XX”语言环境的翻译。
所有域类和所有类的所有成员(操作、属性和集合)都需要翻译。此信息可从元模型中获得,因此会生成一个新的模板translations.po
,作为运行集成测试(通过 log4j2 记录器)的副作用。一个很好的集成测试是ValidateDomainModel_IntegTest
。
此外,测试触发的任何验证消息都需要翻译。运行触发验证的集成测试将导致这些消息被捕获为键,例如Smoke_IntegTest
。
生成的文件应与WEB-INF/translations.po
中的任何现有翻译以及为任何新密钥获得的翻译合并(有许多在线服务支持该格式)。
该应用程序还演示了如何使用 Flyway 迁移数据库架构。
默认情况下,应用程序使用内存数据库运行。 Flyway 示例是使用“SQLSERVER”Spring Boot 配置文件激活的,例如:
mvn -Dspring.profiles.active=SQLSERVER -pl webapp install
mvn -Dspring.profiles.active=SQLSERVER -pl webapp spring-boot:run
这会导致优先使用config/application-SQLSERVER.properties
文件中定义的属性,而不是默认config/application.properties
文件中定义的属性。它定义了以下内容:
spring.flyway.url
、 spring.flyway.user
和spring.flyway.password
这些的存在足以实现 Flyway 集成
spring.flyway.enabled
这被显式设置为true
,以覆盖默认config/application.properties
中的值。
Spring Boot 配置文件还用于添加对 POSTGRES 服务器驱动程序的依赖项(它隐藏在 Maven 配置文件后面)。
尝试此操作的先决条件是在localhost
上运行 POSTGRES 服务器数据库,并具有config/application-POSTGRESQL.properties
中指定的凭据;根据需要进行调整。
Nexus Command 有无数的用例。尽管如此,一个通用的用例是提供一个用于管理核心业务数据并与第三方系统集成的平台。通过使用 Nexus 作为业务数据的“真实来源”,您可以轻松创建特定于您的业务需求的自定义应用程序和集成,而无需绑定到特定的供应商或平台。
默认 Web 应用程序中包含(或将包含)以下功能:
网站管理(测试版)
组织管理(测试版)
加盟商管理(测试版)
内容管理(测试版)
搜索引擎优化(测试版)
员工管理(阿尔法)
产品管理(计划)
库存管理(计划)
客户管理(计划)
销售管理(计划)
报告(计划)
分析(计划)
营销(计划中)
广告整合(计划中)
社交媒体整合(计划中)
电子商务(考虑中)
管理项目和任务并跟踪进度。
使用人工智能生成角色,以帮助生成更好的用户故事和接受标准。
角色生成
人物心理统计
角色专业背景
作为特许经营商或所有者,对内容和数据的细粒度控制可以促进所有地点的一致品牌体验。 Nexus Command 有助于将精细的内容管理委托给特许经营商或代理机构,同时保持对品牌的控制。
组织经理
这是一个概念证明,允许将内容管理委托给特许经营商或代理机构。