Skip to content
naare edited this page Apr 3, 2020 · 6 revisions

How to start digidoc4j development

Since release 1.0.6 the building system for digidoc4j is Maven.

git clone https://github.com/open-eid/digidoc4j.git

cd digidoc4j
mvn clean package

API is available via JavaDoc.

To run tests:

mvn test

To build and run tests inside IDEA

There are no special concerns for building and running tests under IDEA when using Maven.

Finally setup CheckStyle rules like so:

  1. Open CheckStyle tool window
  2. Change rules to: RIA (define and activate ruleset with checkstyle.xml)
  3. Now press run and check that CheckStyle did not find any problems

Releasing in Github

  1. Update the release notes
  2. Update the project.version number in the pom.xml file
  3. Add a tag to the last commit (public-*) you want to release
  4. Run mvn clean package -P delivery to build the artifacts to the target directory
  5. Push the changes
  6. Draft a new release in Github
  7. Choose the correct tag for the release, write something useful and upload the built artifacts
  8. Publish the release

Releasing in Maven Central Repository

  1. Make sure that you have account for Sonatype OSSRH (OSS Repository Hosting)
  2. Make sure that you have GPG installed and keys generated
  3. Make sure that your public key is published in MIT PGP Public Key Server (it is one option)
  4. For deployment there are two possibilities:
    • Create and upload release bundle OR
    • run mvn clean deploy -P delivery -P ossrh with ossrh profile defined in your .m2/settings.xml; usually the structure of settings.xml is following:
<settings>
  <servers>
    <server>
      <id>ossrh</id>
      <username>your_user_name</username>
      <password>your_password_for_ossrh</password>
    </server>
  </servers>
  <profiles>
    <profile>
      <id>ossrh</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <gpg.executable>gpg</gpg.executable>
        <gpg.passphrase>your_gpg_password</gpg.passphrase>
      </properties>
    </profile>
  </profiles>
</settings>