parent
bd0f87fc4d
commit
08838f77ca
11 changed files with 141 additions and 42 deletions
2
.github/workflows/js-ci.yml
vendored
2
.github/workflows/js-ci.yml
vendored
|
@ -47,7 +47,7 @@ jobs:
|
||||||
|
|
||||||
- name: Build Keycloak
|
- name: Build Keycloak
|
||||||
run: |
|
run: |
|
||||||
mvn clean install --batch-mode --errors -DskipTests -DskipTestsuite -DskipExamples -DskipAccount2 -DskipCommon -Pdistribution
|
./mvnw clean install --batch-mode --errors -DskipTests -DskipTestsuite -DskipExamples -DskipAccount2 -DskipCommon -Pdistribution
|
||||||
mv ./quarkus/dist/target/keycloak-999.0.0-SNAPSHOT.tar.gz ./keycloak-999.0.0-SNAPSHOT.tar.gz
|
mv ./quarkus/dist/target/keycloak-999.0.0-SNAPSHOT.tar.gz ./keycloak-999.0.0-SNAPSHOT.tar.gz
|
||||||
|
|
||||||
- name: Upload Keycloak dist
|
- name: Upload Keycloak dist
|
||||||
|
|
4
.github/workflows/operator-ci.yml
vendored
4
.github/workflows/operator-ci.yml
vendored
|
@ -90,7 +90,7 @@ jobs:
|
||||||
|
|
||||||
- name: Test operator running locally
|
- name: Test operator running locally
|
||||||
run: |
|
run: |
|
||||||
mvn install -Poperator -pl :keycloak-operator -am \
|
./mvnw install --batch-mode -Poperator -pl :keycloak-operator -am \
|
||||||
-Dquarkus.kubernetes.image-pull-policy=IfNotPresent \
|
-Dquarkus.kubernetes.image-pull-policy=IfNotPresent \
|
||||||
-Doperator.keycloak.image=keycloak:${{ env.version_local }} \
|
-Doperator.keycloak.image=keycloak:${{ env.version_local }} \
|
||||||
-Dtest.operator.custom.image=custom-keycloak:${{ env.version_local }} \
|
-Dtest.operator.custom.image=custom-keycloak:${{ env.version_local }} \
|
||||||
|
@ -138,7 +138,7 @@ jobs:
|
||||||
- name: Test operator running in cluster
|
- name: Test operator running in cluster
|
||||||
run: |
|
run: |
|
||||||
eval $(minikube -p minikube docker-env)
|
eval $(minikube -p minikube docker-env)
|
||||||
mvn install -Poperator -pl :keycloak-operator -am \
|
./mvnw install --batch-mode -Poperator -pl :keycloak-operator -am \
|
||||||
-Dquarkus.container-image.build=true \
|
-Dquarkus.container-image.build=true \
|
||||||
-Dquarkus.kubernetes.image-pull-policy=IfNotPresent \
|
-Dquarkus.kubernetes.image-pull-policy=IfNotPresent \
|
||||||
-Doperator.keycloak.image=keycloak:${{ env.version_remote }} \
|
-Doperator.keycloak.image=keycloak:${{ env.version_remote }} \
|
||||||
|
|
2
.github/workflows/snyk-analysis.yml
vendored
2
.github/workflows/snyk-analysis.yml
vendored
|
@ -34,7 +34,7 @@ jobs:
|
||||||
|
|
||||||
- name: Check for vulnerabilities in Operator
|
- name: Check for vulnerabilities in Operator
|
||||||
run: |
|
run: |
|
||||||
mvn -Poperator -pl operator -am -DskipTests clean install
|
./mvnw -Poperator -pl operator -am -DskipTests clean install --batch-mode
|
||||||
snyk test --policy-path=${GITHUB_WORKSPACE}/.github/snyk/.snyk --all-projects --prune-repeated-subdependencies --exclude=tests --sarif-file-output=operator-report.sarif operator
|
snyk test --policy-path=${GITHUB_WORKSPACE}/.github/snyk/.snyk --all-projects --prune-repeated-subdependencies --exclude=tests --sarif-file-output=operator-report.sarif operator
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
env:
|
env:
|
||||||
|
|
25
.mvn/extensions.xml
Normal file
25
.mvn/extensions.xml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
<!--
|
||||||
|
~ Copyright 2022 Red Hat, Inc. and/or its affiliates
|
||||||
|
~ and other contributors as indicated by the @author tags.
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<extensions>
|
||||||
|
<!-- https://maven.apache.org/extensions/maven-build-cache-extension/ -->
|
||||||
|
<extension>
|
||||||
|
<groupId>org.apache.maven.extensions</groupId>
|
||||||
|
<artifactId>maven-build-cache-extension</artifactId>
|
||||||
|
<version>1.0.1</version>
|
||||||
|
</extension>
|
||||||
|
</extensions>
|
67
.mvn/maven-build-cache-config.xml
Normal file
67
.mvn/maven-build-cache-config.xml
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!--
|
||||||
|
~ Copyright 2022 Red Hat, Inc. and/or its affiliates
|
||||||
|
~ and other contributors as indicated by the @author tags.
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<cache xmlns="http://maven.apache.org/BUILD-CACHE-CONFIG/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/BUILD-CACHE-CONFIG/1.0.0 https://maven.apache.org/xsd/build-cache-config-1.0.0.xsd">
|
||||||
|
<configuration>
|
||||||
|
<enabled>false</enabled>
|
||||||
|
<hashAlgorithm>XX</hashAlgorithm>
|
||||||
|
</configuration>
|
||||||
|
<input>
|
||||||
|
<global>
|
||||||
|
<!-- matching all files, as there is no good file pattern to match files in META-INF/services by their file name -->
|
||||||
|
<glob>{*}</glob>
|
||||||
|
</global>
|
||||||
|
<plugins>
|
||||||
|
<plugin groupId="com.github.eirslett" artifactId="frontend-maven-plugin">
|
||||||
|
<dirScan>
|
||||||
|
<excludes>
|
||||||
|
<exclude tagName="installDirectory" />
|
||||||
|
</excludes>
|
||||||
|
</dirScan>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</input>
|
||||||
|
<executionControl>
|
||||||
|
<runAlways>
|
||||||
|
<plugins>
|
||||||
|
<plugin artifactId="maven-failsafe-plugin"/>
|
||||||
|
</plugins>
|
||||||
|
<goalsLists>
|
||||||
|
<goalsList artifactId="maven-install-plugin">
|
||||||
|
<goals>
|
||||||
|
<goal>install</goal>
|
||||||
|
</goals>
|
||||||
|
</goalsList>
|
||||||
|
</goalsLists>
|
||||||
|
</runAlways>
|
||||||
|
<reconcile>
|
||||||
|
<plugins>
|
||||||
|
<plugin artifactId="maven-surefire-plugin" goal="test">
|
||||||
|
<reconciles>
|
||||||
|
<!-- might reconsider later: if not putting them here, it might be simpler to run local tests incrementally -->
|
||||||
|
<reconcile propertyName="skip" skipValue="true"/>
|
||||||
|
<reconcile propertyName="skipExec" skipValue="true"/>
|
||||||
|
<reconcile propertyName="skipTests" skipValue="true"/>
|
||||||
|
<reconcile propertyName="testFailureIgnore" skipValue="true"/>
|
||||||
|
</reconciles>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</reconcile>
|
||||||
|
</executionControl>
|
||||||
|
</cache>
|
2
.mvn/wrapper/maven-wrapper.properties
vendored
2
.mvn/wrapper/maven-wrapper.properties
vendored
|
@ -14,5 +14,5 @@
|
||||||
# KIND, either express or implied. See the License for the
|
# KIND, either express or implied. See the License for the
|
||||||
# specific language governing permissions and limitations
|
# specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip
|
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.2/apache-maven-3.9.2-bin.zip
|
||||||
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar
|
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar
|
||||||
|
|
|
@ -18,6 +18,10 @@
|
||||||
<js.projectDir>../../../js</js.projectDir>
|
<js.projectDir>../../../js</js.projectDir>
|
||||||
<js.adapter.projectDir>${js.projectDir}/libs/keycloak-js</js.adapter.projectDir>
|
<js.adapter.projectDir>${js.projectDir}/libs/keycloak-js</js.adapter.projectDir>
|
||||||
<js.adapter.distDir>${js.adapter.projectDir}/dist</js.adapter.distDir>
|
<js.adapter.distDir>${js.adapter.projectDir}/dist</js.adapter.distDir>
|
||||||
|
<!-- as the frontend-maven-plugin depends on workingDirectory, list all parts which should be ignored from the checksum -->
|
||||||
|
<maven.build.cache.exclude.1>${maven.multiModuleProjectDirectory}/js/libs/keycloak-js/node_modules</maven.build.cache.exclude.1>
|
||||||
|
<!-- TODO: this is almost correct, as the DIST folder includes also two source files -->
|
||||||
|
<maven.build.cache.exclude.2>${maven.multiModuleProjectDirectory}/js/libs/keycloak-js/dist</maven.build.cache.exclude.2>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
@ -1,26 +1,12 @@
|
||||||
## Building from source
|
## Building from source
|
||||||
|
|
||||||
Ensure you have JDK 11 (or newer), Maven 3.6.3 (or newer) and Git installed
|
Ensure you have JDK 11 (or newer) and Git installed
|
||||||
|
|
||||||
java -version
|
java -version
|
||||||
mvn -version
|
|
||||||
git --version
|
git --version
|
||||||
|
|
||||||
**NOTE**
|
Instead of using a locally installed Maven, call the Maven wrapper script `mvnw` in the main folder of the project.
|
||||||
|
This will use the Maven version which is supported by this project.
|
||||||
If you use Maven 3.8.1 or newer, please add the following mirror to your local
|
|
||||||
`~/.m2/settings.xml` to avoid build errors:
|
|
||||||
```
|
|
||||||
<mirrors>
|
|
||||||
<mirror>
|
|
||||||
<id>jboss-public-repository-group-https</id>
|
|
||||||
<mirrorOf>jboss-public-repository-group</mirrorOf>
|
|
||||||
<name>Jboss public https</name>
|
|
||||||
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
|
|
||||||
</mirror>
|
|
||||||
</mirrors>
|
|
||||||
```
|
|
||||||
See [KEYCLOAK-17812](https://issues.redhat.com/browse/KEYCLOAK-17812) for more details.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
First clone the Keycloak repository:
|
First clone the Keycloak repository:
|
||||||
|
@ -30,19 +16,19 @@ First clone the Keycloak repository:
|
||||||
|
|
||||||
To build Keycloak run:
|
To build Keycloak run:
|
||||||
|
|
||||||
mvn clean install
|
./mvnw clean install
|
||||||
|
|
||||||
This will build all modules and run the testsuite.
|
This will build all modules and run the testsuite.
|
||||||
|
|
||||||
To build the ZIP distribution run:
|
To build the ZIP distribution run:
|
||||||
|
|
||||||
mvn clean install -Pdistribution
|
./mvnw clean install -Pdistribution
|
||||||
|
|
||||||
Once completed you will find distribution archives in `distribution`.
|
Once completed you will find distribution archives in `distribution`.
|
||||||
|
|
||||||
To build only the server run:
|
To build only the server run:
|
||||||
|
|
||||||
mvn -Pdistribution -pl distribution/server-dist -am -Dmaven.test.skip clean install
|
./mvnw -Pdistribution -pl quarkus/dist -am -Dmaven.test.skip clean install
|
||||||
|
|
||||||
---
|
---
|
||||||
**NOTE**
|
**NOTE**
|
||||||
|
@ -51,6 +37,16 @@ Classes from `org.keycloak.testsuite.*` packages aren't suitable to be used in p
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
This project contains opt-in support for incremental Maven builds using the [Apache Maven Build Cache Extension](https://github.com/apache/maven-build-cache-extension) which is disabled by default.
|
||||||
|
|
||||||
|
To enable it for a single Maven command execution, enable it as follows:
|
||||||
|
|
||||||
|
./mvnw -D -Dmaven.build.cache.enabled=true ...
|
||||||
|
|
||||||
|
To enable it by default, add it to the `MAVEN_OPTS` environment variable:
|
||||||
|
|
||||||
|
export MAVEN_OPTS="-Dmaven.build.cache.enabled=true"
|
||||||
|
|
||||||
### Building Quarkus Distribution
|
### Building Quarkus Distribution
|
||||||
|
|
||||||
Please, take a look at this [documentation](../quarkus/README.md).
|
Please, take a look at this [documentation](../quarkus/README.md).
|
||||||
|
@ -59,19 +55,12 @@ Please, take a look at this [documentation](../quarkus/README.md).
|
||||||
|
|
||||||
To start Keycloak during development first build as specified above, then run:
|
To start Keycloak during development first build as specified above, then run:
|
||||||
|
|
||||||
mvn -f testsuite/utils/pom.xml exec:java -Pkeycloak-server
|
./mvnw -f testsuite/utils/pom.xml exec:java -Pkeycloak-server
|
||||||
|
|
||||||
When running testsuite, by default an account with username `admin` and password `admin` will be created within the master realm at start.
|
When running testsuite, by default an account with username `admin` and password `admin` will be created within the master realm at start.
|
||||||
|
|
||||||
To start Keycloak from the server distribution first build the distribution it as specified above, then run:
|
|
||||||
|
|
||||||
tar xfz distribution/server-dist/target/keycloak-<VERSION>.tar.gz
|
|
||||||
cd keycloak-<VERSION>
|
|
||||||
bin/standalone.sh
|
|
||||||
|
|
||||||
To stop the server press `Ctrl + C`.
|
To stop the server press `Ctrl + C`.
|
||||||
|
|
||||||
|
|
||||||
## Working with the codebase
|
## Working with the codebase
|
||||||
|
|
||||||
We don't currently enforce a code style in Keycloak, but a good reference is the code style used by WildFly. This can be
|
We don't currently enforce a code style in Keycloak, but a good reference is the code style used by WildFly. This can be
|
||||||
|
@ -97,6 +86,6 @@ classes. E.g. in IntelliJ IDEA use `Build → Build Project` instead of `Build
|
||||||
If you are building the Operator from your IDE, make sure to build the project with the `operator` profile enabled in Maven
|
If you are building the Operator from your IDE, make sure to build the project with the `operator` profile enabled in Maven
|
||||||
as it's excluded by default:
|
as it's excluded by default:
|
||||||
|
|
||||||
mvn clean install -Poperator -DskipTests
|
./mvnw clean install -Poperator -DskipTests
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
@ -22,6 +22,13 @@
|
||||||
<module>libs/keycloak-js</module>
|
<module>libs/keycloak-js</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<!-- The JavaScript projects use the non-standard 'src' folder for their sources, therefore, name it here explicitly -->
|
||||||
|
<maven.build.cache.input.1>src</maven.build.cache.input.1>
|
||||||
|
<!-- The child projects will package from the 'dist' folder, which is listed as a resource, but isn't a source folder -->
|
||||||
|
<maven.build.cache.exclude.1>${project.basedir}/dist</maven.build.cache.exclude.1>
|
||||||
|
</properties>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
|
|
|
@ -33,7 +33,7 @@ When a build from the project root directory is started, this module is only ena
|
||||||
|
|
||||||
To build this module and produce the artifacts to run a server, you first need to build the main codebase once. This step will put required modules of keycloak into your local maven cache in package `org.keycloak`:
|
To build this module and produce the artifacts to run a server, you first need to build the main codebase once. This step will put required modules of keycloak into your local maven cache in package `org.keycloak`:
|
||||||
|
|
||||||
mvn -f ../pom.xml clean install -DskipTestsuite -DskipExamples -DskipTests
|
../mvnw -f ../pom.xml clean install -DskipTestsuite -DskipExamples -DskipTests
|
||||||
|
|
||||||
This build can take some time, usually around two to four minutes depending on your hardware, and even longer depending on the maven packages that need to be downloaded and installed to the cache.
|
This build can take some time, usually around two to four minutes depending on your hardware, and even longer depending on the maven packages that need to be downloaded and installed to the cache.
|
||||||
|
|
||||||
|
@ -41,13 +41,13 @@ This build can take some time, usually around two to four minutes depending on y
|
||||||
|
|
||||||
After the main codebase is built, you can build the quarkus distribution, including the zip and tar.gz files, by invoking the following command:
|
After the main codebase is built, you can build the quarkus distribution, including the zip and tar.gz files, by invoking the following command:
|
||||||
|
|
||||||
mvn clean install -DskipTests
|
../mvnw clean install -DskipTests
|
||||||
|
|
||||||
This command produces the distribution artifacts as ZIP and TAR file. The artifacts for the quarkus distribution will be available at the `/dist/target` subdirectory afterwards.
|
This command produces the distribution artifacts as ZIP and TAR file. The artifacts for the quarkus distribution will be available at the `/dist/target` subdirectory afterwards.
|
||||||
|
|
||||||
As an alternative, you can build the distribution artifacts directly without a rebuild of the code by running the following command:
|
As an alternative, you can build the distribution artifacts directly without a rebuild of the code by running the following command:
|
||||||
|
|
||||||
mvn -f dist/pom.xml clean install
|
../mvnw -f dist/pom.xml clean install
|
||||||
|
|
||||||
## Running in Keycloak development mode
|
## Running in Keycloak development mode
|
||||||
When you start Keycloak in production mode, the HTTP port is disabled by default, and you need to provide the key material to configure HTTPS, a hostname and other configuration suitable for production.
|
When you start Keycloak in production mode, the HTTP port is disabled by default, and you need to provide the key material to configure HTTPS, a hostname and other configuration suitable for production.
|
||||||
|
@ -66,13 +66,13 @@ Please make sure to read our [Contribution Guidelines](../CONTRIBUTING.md) befor
|
||||||
|
|
||||||
To run the server in Quarkus' development mode, invoke the following command:
|
To run the server in Quarkus' development mode, invoke the following command:
|
||||||
|
|
||||||
mvn -f server/pom.xml compile quarkus:dev -Dquarkus.args="start-dev"
|
../mvnw -f server/pom.xml compile quarkus:dev -Dquarkus.args="start-dev"
|
||||||
|
|
||||||
You will be able to attach your debugger to port `5005`.
|
You will be able to attach your debugger to port `5005`.
|
||||||
|
|
||||||
For debugging the build steps right after start, you can suspend the JVM by running:
|
For debugging the build steps right after start, you can suspend the JVM by running:
|
||||||
|
|
||||||
mvn -f server/pom.xml -Dsuspend=true compile quarkus:dev -Dquarkus.args="start-dev"
|
../mvnw -f server/pom.xml -Dsuspend=true compile quarkus:dev -Dquarkus.args="start-dev"
|
||||||
|
|
||||||
When running using `quarkus:dev` you are able to do live coding whenever you change / add code in the `server` module, for example when creating a new custom provider.
|
When running using `quarkus:dev` you are able to do live coding whenever you change / add code in the `server` module, for example when creating a new custom provider.
|
||||||
|
|
||||||
|
@ -102,10 +102,12 @@ There are also some container based tests to check if Keycloak starts using one
|
||||||
|
|
||||||
These tests are disabled by default. They using Quarkus development mode predefined database containers by default and can be run in the `tests` subdirectory by using e.g.
|
These tests are disabled by default. They using Quarkus development mode predefined database containers by default and can be run in the `tests` subdirectory by using e.g.
|
||||||
|
|
||||||
mvn clean install -Dkc.test.storage.database=true -Dtest=MariaDBStartDatabaseTest
|
../mvnw clean install -Dkc.test.storage.database=true -Dtest=MariaDBStartDatabaseTest
|
||||||
|
|
||||||
to spin up a MariaDB container and start Keycloak with it.
|
to spin up a MariaDB container and start Keycloak with it.
|
||||||
|
|
||||||
To use a specific database container image, use the option -Dkc.db.postgresql.container.image to specify the image tag of the postgres image to use or -Dkc.db.mariadb.container.image=<name:tag> for mariadb.
|
To use a specific database container image, use the option `-Dkc.db.postgresql.container.image` to specify the image tag of the postgres image to use or `-Dkc.db.mariadb.container.image=<name:tag>` for mariadb.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
mvn clean install -Dkc.test.storage.database=true -Dtest=PostgreSQLDistTest -Dkc.db.postgresql.container.image=postgres:
|
|
||||||
|
../mvnw clean install -Dkc.test.storage.database=true -Dtest=PostgreSQLDistTest -Dkc.db.postgresql.container.image=postgres:alpine
|
||||||
|
|
|
@ -16,6 +16,11 @@
|
||||||
<dir.common>src/main/resources/theme/keycloak/common/resources</dir.common>
|
<dir.common>src/main/resources/theme/keycloak/common/resources</dir.common>
|
||||||
<dir.account2>src/main/resources/theme/keycloak.v2/account/src</dir.account2>
|
<dir.account2>src/main/resources/theme/keycloak.v2/account/src</dir.account2>
|
||||||
<args.npm.install>ci --no-optional --ignore-scripts</args.npm.install>
|
<args.npm.install>ci --no-optional --ignore-scripts</args.npm.install>
|
||||||
|
<!-- ignore folders for incremental builds by the maven build cache plugin -->
|
||||||
|
<maven.build.cache.exclude.1>${project.basedir}/src/main/resources/theme/keycloak/common/resources/node_modules</maven.build.cache.exclude.1>
|
||||||
|
<maven.build.cache.exclude.2>${project.basedir}/src/main/resources/theme/keycloak/common/resources/web_modules</maven.build.cache.exclude.2>
|
||||||
|
<maven.build.cache.exclude.3>${project.basedir}/src/main/resources/theme/keycloak.v2/account/src/node_modules</maven.build.cache.exclude.3>
|
||||||
|
<maven.build.cache.exclude.4>${project.basedir}/src/main/resources/theme/keycloak.v2/account/src/web_modules</maven.build.cache.exclude.4>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
Loading…
Reference in a new issue