Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
devel:documentation:quickstart:dev:ide:idea [2018/03/22 15:07]
stloukalp created
devel:documentation:quickstart:dev:ide:idea [2023/12/05 08:51]
kolombom [Importing a Module]
Line 1: Line 1:
 +====== IDEA ======
 +
 +{{tag> ide}}
 +
 +Configuration quickstart for developing CzechIdM in IntelliJ IDEA.
 +
 +====== Import project ======
 +
 +  - Open Idea and choose to //Import project (File → New → Project from Existing Sources)//
 +  - Import the ''/–path–/CzechIdM/Realization/backend/aggregator''  project, where ''–path–''  is wherever you pulled your sources, click //Next//
 +  - {{  .:importmaven.png?nolink&460x581  }}The aggregator project should import all dependencies automatically, give it some time.
 +  - Next. Next… Project should be imported.
 +  - Make sure to set dev profile in the maven panel on the right
 +  - {{  .:dev-profile.png?nolink&269x556  }}You should be good to go.
 +
 +====== Metamodel generation ======
 +
 +After creating the project, make sure following modules are available in explorer:
 +
 +  * ic
 +  * acc
 +  * core-api
 +  * core-impl
 +  * core-test-api
 +
 +To set up metamodel generation, go to "File → Settings → Build, Execution, Deployment → Compiler, Annotation Processors" and tick "Enable annotation processing". Now rebuild the project.
 +
 +====== Code style ======
 +
 +Go to "File → Settings → Editor → Code style → Java". On the first tab, "Tabs and indents", tick "Use tab character". On next tab "Imports" put 999 to "Class count to use import with '*'" and "Names count to use static imports with '*'.
 +
 +Next adjust the Import Layout on the bottom of the window as:
 +
 +<code>
 +static all other,
 +blank,
 +java.*,
 +blank,
 +javax.*,
 +blank,
 +org.*,
 +blank,
 +com.*,
 +blank,
 +all other imports
 +
 +</code>
 +
 +====== Configure test runner ======
 +
 +<note warning>This currently doesn't seem to work, alternative is to just check the test profile in Maven and run specific tests over one folder by right-click > run tests in java</note>
 +
 +To create test run configuration for all modules (including 'acc'), go to Run/Debug Configuration, click '+' and choose 'JUnit'. Use following settings:
 +
 +  * Test kind: All in package
 +  * Package: eu.bcvsolutions.idm
 +  * Search for tests: whole project
 +  * Before launch: Build
 +  * Add to VM options following: -ea -Dspring.profiles.active=test
 +
 +<note important>**-Dspring.profiles.active=test**  ||| This is the only way how you can run tests under profile test. It is also used for a single test.</note>
 +
 +Save the configuration and test it by running. Tests from all modules should be executed.
 +
 +====== Launch on Tomcat ======
 +
 +First of all make sure that you have Tomcat 9.0 installed. Then chose Tomcat server in Run/Debug Configurations in IDEA. Set URL to "http://localhost:8080/idm-backend/". On a "Deployment" tab set Application context to ''idm-backend/''. Apply and try to launch the project on server. At this point I had an error that said something like "name or service not known", there is the link that helped me solving this error: "https://stackoverflow.com/questions/19068977/intellij-cant-start-simple-web-application-unable-to-ping-server-at-localhost".
 +
 +{{  .:backend-path.png?nolink&780x182  }}
 +
 +TIP 01: Deploy exploded artefact instead of compressed one.
 +
 +TIP 02: If there is nothing deployed to the server check File → Project Structure → Artefacts tab. Add all modules you want to deploy to the artefact you deploy. This should happen automatically by Maven but sometimes it doesn't.
 +
 +====== Importing a Module ======
 +
 +To develop a module alongside main CzechIdm, import the module from Project Structure > Project Settings > Modules > Right click in the list of modules > Add > Import Module
 +
 +{{.:screenshot2023-12-04153509.png?nolink&1035x921}}
 +
 +When the module is imported, go to Artifacts tab and drag the module artifact over idm-backend.war.
 +
 +{{.:idm-war.png?nolink&855x579}}
 +
 +Then rebuild the project.
 +
 +<note important>When you reload Maven configuration, this change will disappear and you have to re-add the module to war again</note>
 +
 +
 +===== Troubleshooting =====
 +
 +If you see errors with missing dependencies, try to reload Maven profiles (double-shift > reload Maven).
 +
 +If that doesn't help, try to rebuild project from command line ''mvn clean install -DskipTests''
 +
  
  • by kolombom