-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.gradle
142 lines (127 loc) · 4.38 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
import org.apache.tools.ant.taskdefs.condition.Os
plugins {
id("com.github.node-gradle.node") version "7.1.0"
id 'com.enonic.xp.app' version '3.4.0'
id 'no.item.xp.codegen' version '2.3.0'
}
app {
name = "${appName}"
displayName = "${appDisplayName}"
vendorName = "${vendorName}"
vendorUrl = "${vendorUrl}"
systemVersion = "${xpVersion}"}
dependencies {
include "com.enonic.lib:lib-thymeleaf:2.1.1"
implementation "com.enonic.xp:core-api:${xpVersion}"
implementation "com.enonic.xp:portal-api:${xpVersion}"
include "com.enonic.xp:lib-content:${xpVersion}"
include "com.enonic.xp:lib-portal:${xpVersion}"
include "com.enonic.xp:lib-common:${xpVersion}"
include "com.enonic.lib:lib-util:3.1.1"
include "com.enonic.xp:lib-task:${xpVersion}"
include "com.enonic.xp:lib-auth:${xpVersion}"
include "com.enonic.xp:lib-admin:${xpVersion}"
include "com.enonic.lib:lib-http-client:3.2.2"
include "com.enonic.xp:lib-i18n:${xpVersion}"
include "com.enonic.lib:lib-cron:1.1.2"
include "com.enonic.xp:lib-context:${xpVersion}"
include 'com.enonic.lib:lib-cache:2.2.1'
include "com.enonic.xp:lib-event:${xpVersion}"
include "com.enonic.xp:lib-node:${xpVersion}"
include "com.enonic.xp:lib-repo:${xpVersion}"
include "com.enonic.xp:lib-io:${xpVersion}"
include "com.enonic.xp:lib-websocket:${xpVersion}"
include "com.enonic.xp:lib-cluster:${xpVersion}"
include "com.enonic.xp:lib-mail:${xpVersion}"
include "com.enonic.xp:lib-scheduler:${xpVersion}"
implementation 'commons-codec:commons-codec:1.17.1'
include "no.item:wsutil-server:2.0.0"
include "com.gravitondigital:featuretogglelib:0.3.0"
include 'org.json:json:20240303'
include "com.enonic.lib:lib-react4xp:5.1.1"
include 'com.enonic.lib:lib-text-encoding:2.1.1'
include "com.enonic.xp:lib-value:${xpVersion}"
include "no.item:lib-xp-cristin:1.3.2"
include "no.item:lib-xp-time:1.0.4"
}
repositories {
mavenLocal()
mavenCentral()
xp.enonicRepo()
maven {
url "https://repo1.maven.org/maven2/"
}
maven {
url 'https://jitpack.io'
}
}
node {
download = true
version = '18.12.1'
}
task compileAssets( type: NpmTask, dependsOn: npmInstall) {
args = [
'run',
'build:asset' // This script must exist in the package.json file
]
description 'Compile asset resources'
}
task compileServer( type: NpmTask, dependsOn: npmInstall) {
args = [
'run',
'build:server' // This script must exist in the package.json file
]
description 'Compile server resources'
}
task react4xp(type: NpmTask, dependsOn: npmInstall) {
args = [
'run',
'compile:react4xp' // This script must exist in the package.json file
]
description 'Compile React4xp resources'
environment = [
'R4X_APP_NAME': "${appName}",
'R4X_BUILD_LOG_LEVEL': gradle.startParameter.logLevel.toString(),
'R4X_DIR_PATH_ABSOLUTE_PROJECT': project.projectDir.toString(),
'NODE_ENV': project.hasProperty('dev') || project.hasProperty('development') ? 'development' : 'production'
]
group 'react4xp'
// It also watches package.json and package-lock.json :)
inputs.dir 'node_modules/@enonic/react4xp'
inputs.dir 'src/main/resources'
outputs.dir 'build/resources/main'
}
jar.dependsOn 'react4xp'
processResources {
include '**/*'
exclude '**/.gitkeep'
exclude '**/tsconfig.*.json'
exclude '**/*.es'
exclude '**/*.es6'
exclude '**/*.ts'
exclude '**/*.test.js'
exclude 'assets/js/**/*.js'
include 'assets/js/bundle.js'
exclude 'assets/styles/**/*.less'
exclude 'assets/styles/**/*.sass'
exclude 'assets/styles/**/*.scss'
includeEmptyDirs false
}
jar {
exclude 'assets/styles/**/*.less'
exclude 'assets/styles/**/*.sass'
exclude 'assets/styles/**/*.scss'
exclude 'assets/styles/**/*.js'
compileServer.dependsOn += generateTypeScript {
singleQuote = true
prependText = "/* eslint-disable prettier/prettier */ \n // WARNING: This file was automatically generated by no.item.xp.codegen. You may lose your changes if you edit it."
}
dependsOn += npmInstall
dependsOn += compileAssets
dependsOn += compileServer
}
def nodeEnvironment() {
def environments = [ prod : 'production', dev: 'development' ]
def nodeEnv = environments[hasProperty( 'env' ) ? env : 'prod']
return nodeEnv != null ? nodeEnv : 'production'
}