Difference between revisions of "IT-SDK-Quarkus"

From wiki.samerhijazi.net
Jump to navigation Jump to search
(OpenShift)
(Maven)
 
(26 intermediate revisions by 3 users not shown)
Line 1: Line 1:
=Quarkus=
+
=Ref=
==OpenShift==
+
* https://quarkus.io/guides/getting-started
 +
* https://quarkus.io/guides/maven-tooling
 +
* https://quarkus.io/guides/centralized-log-management
 +
* https://quarkus.io/guides/rest-json
 +
* https://lordofthejars.github.io/quarkus-cheat-sheet/
 +
 
 +
=Initial=
 +
==CLI==
 +
<pre class="code">
 +
quarkus create app com.condolco.trymore:trymore --extension=resteasy
 +
cd trymore
 +
quarkus dev
 +
quarkus build
 +
</pre>
 +
 
 +
==Maven==
 +
<pre class="code">
 +
mvn io.quarkus.platform:quarkus-maven-plugin:2.11.1.Final:create \
 +
    -DprojectGroupId=com.condolco \
 +
    -DprojectArtifactId=quarkus-app \
 +
    -Dextensions="resteasy"
 +
----
 +
cd trymore
 +
mvn quarkus:dev
 +
mvn clean package
 +
</pre>
 +
 
 +
=OpenShift=
 
* https://www.youtube.com/watch?v=QxJQMb35RWU
 
* https://www.youtube.com/watch?v=QxJQMb35RWU
 
* https://quarkus.io/guides/getting-started
 
* https://quarkus.io/guides/getting-started
Line 6: Line 33:
 
* https://quarkus.io/guides/deploying-to-kubernetes
 
* https://quarkus.io/guides/deploying-to-kubernetes
 
* https://quarkus.io/guides/deploying-to-openshift
 
* https://quarkus.io/guides/deploying-to-openshift
 
+
<pre class="code">
oc new-build --name qshift --strategy docker --code . --dockerfile - < src/main/docker/Dockerfile.jvm
+
oc new-project $NAME_SPACE
oc start-build --from-dir . qshift
+
oc project $NAME_SPACE
oc new-app --image-stream airhacks/qshift --name qshift
+
oc delete $NAME_SPACE
 +
...
 +
oc new-build --name $NAME_BUILD --namespace $NAME_SPACE --strategy docker --binary
 +
oc new-build --name $NAME_BUILD --namespace $NAME_SPACE --strategy docker --binary --to="$NAME_BUILD"
 +
oc new-build --name $NAME_BUILD --namespace $NAME_SPACE --strategy docker --binary --docker-image $NAME_DOCKER:TAG
 +
oc new-build --name $NAME_BUILD --namespace $NAME_SPACE --strategy docker --code . --dockerfile - < src/main/docker/Dockerfile.jvm
 +
...
 +
oc start-build $NAME_BUILD --from-dir . --follow --wait
 +
oc new-app --name=$NAME_BUILD --image-stream=$NAME_SPACE/$NAME_BUILD:latest
 +
oc expose svc/$NAME_BUILD
 +
...
 +
oc get is
 +
oc get svc
 +
oc get routes
 +
</pre>
  
 
==ref: Roadmap==
 
==ref: Roadmap==
Line 15: Line 56:
 
* https://github.com/quarkusio/quarkus-quickstarts
 
* https://github.com/quarkusio/quarkus-quickstarts
 
* https://redhat-developer-demos.github.io/quarkus-tutorial/quarkus-tutorial/index.html
 
* https://redhat-developer-demos.github.io/quarkus-tutorial/quarkus-tutorial/index.html
 +
* https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/server.html
 
* -------------------------------------------------------
 
* -------------------------------------------------------
 
* https://quarkus.io/guides/datasource
 
* https://quarkus.io/guides/datasource
Line 52: Line 94:
 
</pre>
 
</pre>
  
==Startup==
+
=Startup=
 +
* https://quarkus.io/guides/maven-tooling
 +
<pre class="code">
 +
mvn "io.quarkus:quarkus-maven-plugin:2.0.1.Final:create"
 +
mvn "io.quarkus:quarkus-maven-plugin:1.11.7.Final:create"
 +
</pre>
 
<pre class="code">
 
<pre class="code">
mvn "io.quarkus:quarkus-maven-plugin:1.12.2.Final:create"
+
mvn "io.quarkus:quarkus-maven-plugin:2.5.2.Final:create" \
------------------------------------------------------------
+
     -DprojectGroupId="net.samerhijazi.startup" \
mvn "io.quarkus:quarkus-maven-plugin:1.12.2.Final:create" \
+
     -DprojectArtifactId="quarkus-startup" \
     -DprojectGroupId="net.condolco" \
+
     -DclassName="net.samerhijazi.startup.run" \
     -DprojectArtifactId="quarkus-app-00" \
 
     -DclassName="init.SayHello" \
 
 
     -Dpath="/hello" \
 
     -Dpath="/hello" \
     -Dextensions="resteasy,resteasy-jackson"
+
     -Dextensions="resteasy"
 +
---
 +
mvn io.quarkus.platform:quarkus-maven-plugin:2.6.3.Final:create \
 +
    -DprojectGroupId=my-groupId \
 +
    -DprojectArtifactId=my-artifactId \
 +
    -DprojectVersion=my-version \
 +
    -DclassName="org.my.group.MyResource"
 
</pre>
 
</pre>
 
<pre class="code">
 
<pre class="code">
mvn package                                             # create the project
+
mvn clean
mvn compile quarkus:dev
+
mvn compile
 +
mvn package
 +
...
 +
mvn quarkus:dev
 
mvn quarkus:list-extensions
 
mvn quarkus:list-extensions
mvn quarkus:add-extension -Dextensions="hibernate-validator"
+
mvn quarkus:add-extension -Dextensions="openshift"
mvn quarkus:add-extension -Dextensions="hibernate-*"
+
mvn quarkus:remove-extension -Dextensions="openshift"
 
</pre>
 
</pre>
 
<pre class="code">
 
<pre class="code">
Line 74: Line 128:
 
mvn clean package -DskipTests
 
mvn clean package -DskipTests
 
java -jar target/tutorial-app-1.0-SNAPSHOT-runner.jar
 
java -jar target/tutorial-app-1.0-SNAPSHOT-runner.jar
</pre>
+
...
<pre class="code">
 
 
## mode: native
 
## mode: native
 
mvn clean package -DskipTests -Pnative
 
mvn clean package -DskipTests -Pnative
 
./target/tutorial-app-1.0-SNAPSHOT-runner
 
./target/tutorial-app-1.0-SNAPSHOT-runner
</pre>
+
...
<pre class="code">
 
 
## mode: native contianer
 
## mode: native contianer
mvn package -DskipTests -Pnative -Dquarkus.native.container-build=true
+
mvn clean package -DskipTests -Pnative -Dquarkus.native.container-build=true
 
docker build -f src/main/docker/Dockerfile.native -t example/tutorial-app:1.0-SNAPSHOT .
 
docker build -f src/main/docker/Dockerfile.native -t example/tutorial-app:1.0-SNAPSHOT .
 
docker run -it --rm -p 8080:8080 example/tutorial-app:1.0-SNAPSHOT
 
docker run -it --rm -p 8080:8080 example/tutorial-app:1.0-SNAPSHOT
 
</pre>
 
</pre>

Latest revision as of 10:00, 31 August 2022

Ref

Initial

CLI

quarkus create app com.condolco.trymore:trymore --extension=resteasy
cd trymore
quarkus dev
quarkus build

Maven

mvn io.quarkus.platform:quarkus-maven-plugin:2.11.1.Final:create \
    -DprojectGroupId=com.condolco \
    -DprojectArtifactId=quarkus-app \
    -Dextensions="resteasy"
----
cd trymore
mvn quarkus:dev
mvn clean package

OpenShift

oc new-project $NAME_SPACE
oc project $NAME_SPACE
oc delete $NAME_SPACE
...
oc new-build --name $NAME_BUILD --namespace $NAME_SPACE --strategy docker --binary
oc new-build --name $NAME_BUILD --namespace $NAME_SPACE --strategy docker --binary --to="$NAME_BUILD"
oc new-build --name $NAME_BUILD --namespace $NAME_SPACE --strategy docker --binary --docker-image $NAME_DOCKER:TAG
oc new-build --name $NAME_BUILD --namespace $NAME_SPACE --strategy docker --code . --dockerfile - < src/main/docker/Dockerfile.jvm
...
oc start-build $NAME_BUILD --from-dir . --follow --wait
oc new-app --name=$NAME_BUILD --image-stream=$NAME_SPACE/$NAME_BUILD:latest
oc expose svc/$NAME_BUILD
...
oc get is
oc get svc
oc get routes

ref: Roadmap

ref: Colletions

docker pull maven:3.6-jdk-11-slim

Startup

mvn "io.quarkus:quarkus-maven-plugin:2.0.1.Final:create"
mvn "io.quarkus:quarkus-maven-plugin:1.11.7.Final:create"
mvn "io.quarkus:quarkus-maven-plugin:2.5.2.Final:create" \
    -DprojectGroupId="net.samerhijazi.startup" \
    -DprojectArtifactId="quarkus-startup" \
    -DclassName="net.samerhijazi.startup.run" \
    -Dpath="/hello" \
    -Dextensions="resteasy"
---
mvn io.quarkus.platform:quarkus-maven-plugin:2.6.3.Final:create \
    -DprojectGroupId=my-groupId \
    -DprojectArtifactId=my-artifactId \
    -DprojectVersion=my-version \
    -DclassName="org.my.group.MyResource"
mvn clean
mvn compile
mvn package
...
mvn quarkus:dev
mvn quarkus:list-extensions
mvn quarkus:add-extension -Dextensions="openshift"
mvn quarkus:remove-extension -Dextensions="openshift"
## mode: jvm
mvn clean package -DskipTests
java -jar target/tutorial-app-1.0-SNAPSHOT-runner.jar
...
## mode: native
mvn clean package -DskipTests -Pnative
./target/tutorial-app-1.0-SNAPSHOT-runner
...
## mode: native contianer
mvn clean package -DskipTests -Pnative -Dquarkus.native.container-build=true
docker build -f src/main/docker/Dockerfile.native -t example/tutorial-app:1.0-SNAPSHOT .
docker run -it --rm -p 8080:8080 example/tutorial-app:1.0-SNAPSHOT