Skip to content

c1 Project Setup

Sabine Gillner edited this page Apr 30, 2024 · 20 revisions

Axon Ivy Banner - Mountain in Summer

Anything that can be coded and wrapped in an Ivy project can be offered as market product. To distribute it in a safe and effective way, the product must be provided to be usable in a Maven-compatible workspace. The code, its build infrastructure and the target repository are made available (free of charge) on Github.

A good example of how a market product needs to be set up is the A-Trust connector. You can refer to this connector if you're unsure about implementing your product.

The following steps will help you to create your market product.

Initialize a new repository

  1. Login to Github.com or create a new account if you do not have one yet.
  2. Create your own product repository by copying our template. create
  3. Customize the project.name and artefactID in the pom.xml directly in your browser
    1. Click on pom.xml and start editing edit
    2. Set your product name and artifactId edit
    3. Indicate the platform version that supports your product by settings the <version>
    4. Save your changes by committing to master edit
  4. Clone the created repository onto your local disc. clone
  5. Import your local repository into the Axon Ivy Designer via Import -> Maven -> Existing Maven Project import

Create your product projects

Use the Axon Ivy Designer to create three distinct projects within the local repository:

  1. A main project
  2. A demo project
  3. A test project

Create the new project from the previously imported module project. new

Main Project

Create the main project that contains the product you want to share. Make sure that the name matches the name you entered in the “pom.xml” in step 3. new-main

Demo Project

Create a project that demonstrates a valid use-case of your product. After clicking Next in the wizard, set the previously created project as dependency. new-demo new-dep

Go to pom.xml and change the version of your product to ${project.version}. You no longer need to maintain the correct version here.

Test Project

Create a test project (created using the New Ivy Test Project wizard) that assures the quality of the product. new-test

  1. Select the product as project under test and pick testing flavors you would like to use. test-flavour
  2. Change the project name so it ends with -test. test-naming

Again go to pom.xml and change the version of your product to ${project.version}- so you no longer need to maintain the correct version here.

To prevent that the test artifact gets deployed to the maven repository, disable the deployment by adding this code snippet to the pom.xml of your test project.

<build>
  ...
  <pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-deploy-plugin</artifactId>
        <version>3.0.0-M1</version>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>
    </plugins>
  </pluginManagement>
  ...
</build>

Streamline versions

Navigate to “pom.xml” in all 3 created projects and open the deployment editor. Set the same project version as in the main pom.xml module (e.g. “9.2.0-SNAPSHOT”). It should match the version of the Axon Ivy platform you will be working with.

Push to Remote

  1. Add, commit and push the created project files to Github.com.
    1. A GitHub Action build will run automatically and verify that the projects can be built and published with Maven.
  2. Now you can start with the [implementation of your product] (c2 product development), its demo use cases and the tests.
Clone this wiki locally