如何解决不知道如何将joinfaces包含到多模块gradle构建中
我的一个旧应用是Java 8 Enterprise Mololith,我想迁移它。
我想将其迁移到包含Primefaces, 通过使用联接面将myfaces和omnifaces分成较小的部分(多模块项目) 以获得更好的维护。
因此,我将项目分为以下模块,成为可以工作的原型:
模块的简短说明:
- Common / ComDb:这里仅是生成的JPA实体,直接从数据库中分类,所有模块都可以使用这些类
- Libraries / LibPrimeFaces:这只是应在SpringBoot中使用的最新的Elite JAR素数
- Libraries / LibPrimeFacesTheme:这是一个购买的primefaces主题,将被生成的JAR捆绑并包含在其中。
- 服务/ *:应使用的每个spring boot服务都位于此处,因此可以在主应用程序中使用,也可以在REST上的外部服务中使用它
- 应用程序:这是Spring Boot应用程序,其中应包括上述所有内容-甚至最后是一个可运行的jar文件
对我来说现在的问题是使用gradle对我来说是全新的:
我不知道如何结合使用gradle来从Elite订阅,omnifaces 3和myfaces购买的primefaces-8.0.5.jar结合joinfaces。
大多数手册是针对Maven的,但是如果我不喜欢它们,它们似乎就不起作用了。 转换脚本。
目前,整个项目已编译并开始,没有任何错误,但是现在我找不到在像我这样的多模块环境中使用joinfaces和gradle的可行示例。
以下是主要的gradle脚本:
根脚本:
gradle.properties(保留版本):
VersionspringBoot=2.3.5.RELEASE
VersionspringDependencyManagement=1.0.10.RELEASE
VersionPrimeFaces=8.0.5
rootProject.name = 'EcoCalcDD4Web'
include 'Common:ComDb'
include 'Libraries:LibPrimeFaces'
include 'Services:ServiceConfigWebManagement'
include 'Application'
buildscript {
repositories {
mavenCentral()
maven {
url './Libraries/LibPrimeFaces'
}
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${VersionspringBoot}")
}
}
allprojects {
group = 'com.skf.rocket'
version = '1.0.0'
repositories {
mavenCentral()
maven {
url './Libraries/LibPrimeFaces'
}
}
}
subprojects {
apply plugin: 'java-library'
apply plugin: 'io.spring.dependency-management'
repositories {
mavenCentral()
maven {
url './Libraries/LibPrimeFaces'
}
}
dependencyManagement {
imports {
mavenBom("org.springframework.boot:spring-boot-dependencies:${VersionspringBoot}")
}
}
dependencies {
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
}
这里是应用程序build.gradle-该文件,其中joinfaces应该与我的素字,全脸和myfaces一起使用。 在这里,我不知道要添加什么以使所有内容都从joinfaces开始:
apply plugin: 'org.springframework.boot'
bootJar {
mainClassName = "com.skf.rocket.EcoCalcDd4Webrocket"
}
// Maven dependencies
dependencies {
// Internal dependencies
api project(':Common:ComDb')
// Implementation project('Libraries:LibPrimeFacesTheme')
api project(':Services:ServiceConfigWebManagement')
// External dependencies
// joinfaces + MyFaces + PrimeFaces - Todo ??
// Development tools with HotReDeploy
developmentOnly 'org.springframework.boot:spring-boot-devtools'
// Automatically configuration
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
// Lombok - Utility
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
// Global cache
implementation 'org.springframework.boot:spring-boot-starter-cache'
// Data access + MS sql driver
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.microsoft.sqlserver:mssql-jdbc'
// Data validation
implementation 'org.springframework.boot:spring-boot-starter-validation'
// Web + RestService
implementation 'org.springframework.boot:spring-boot-starter-web'
// Session management
implementation 'org.springframework.session:spring-session-core'
// Boot Acturator - Application monitoring and alive checks
compile group: 'org.springframework.boot',name: 'spring-boot-starter-actuator'
// Unit test
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage',module: 'junit-vintage-engine'
}
}
test {
useJUnitPlatform()
}
解决方法
首先,您应该看一下以下资源:
- https://docs.gradle.org/current/userguide/intro_multi_project_builds.html
- https://docs.gradle.org/current/userguide/declaring_repositories.html#sub:flat_dir_resolver
- https://docs.joinfaces.org/4.3.4/reference/#_gradle
- https://docs.joinfaces.org/4.3.4/reference/#_example_using_myfaces_instead_of_mojarra
- https://github.com/joinfaces/joinfaces-gradle-jar-example
要开始使用JoinFaces,您需要依赖org.joinfaces:jsf-spring-boot-starter
。
因为要使用MyFaces代替Mojarra,所以必须将其排除在外,然后拉MyFaces。
我将从这些依赖性开始:
implementation ("org.joinfaces:jsf-spring-boot-starter") {
exclude module: "mojarra-spring-boot-starter"
}
implementation "org.joinfaces:myfaces-spring-boot-starter"
implementation "org.joinfaces:omnifaces1-spring-boot-starter"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。