Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Section
titleConfiguration

After successful installation of the Atlassian SDK you need to configure Maven and the Doctype Maven Plugin.

Section
titleMaven

To configure the build process we recommend to provide a Maven Settings file (settings.xml) with the following information.

Caution Box

Please adjust the local repository path according to your environment!

You may also want to add the repository information not to your settings file, but to your artifact server. Alternatively you may want to add your local repository server to fetch most of the dependencies locally.


Code Block
languagexml
<?xml version="1.0"?>

<settings>
  <localRepository>D:\projects\repositories\external</localRepository>

  <servers>
    <server>
      <id>smartics</id>
      <username>anonymous</username>
      <password>anonymous</password>
    </server>
    <server>
      <id>smartics-snapshot</id>
      <username>anonymous</username>
      <password>anonymous</password>
    </server>
  </servers>

  <profiles>
    <profile>
      <id>view-from-outside-of-smartics</id>
      <repositories>
        <repository>
          <id>smartics</id>
          <url>https://www.smartics.eu/nexus/content/repositories/public</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
        <repository>
          <id>smartics-snapshot</id>
          <url>https://www.smartics.eu/nexus/content/repositories/public-snapshot</url>
          <releases>
            <enabled>false</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>smartics</id>
          <url>https://www.smartics.eu/nexus/content/repositories/public</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
        <pluginRepository>
          <id>smartics-snapshot</id>
          <url>https://www.smartics.eu/nexus/content/repositories/public-snapshot</url>
          <releases>
            <enabled>false</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>view-from-outside-of-smartics</activeProfile>
  </activeProfiles>

  <pluginGroups>
    <pluginGroup>de.smartics.maven.plugin</pluginGroup>
  </pluginGroups>
</settings>

The main part is that the smartics repositories are accessible.

Caution Box

We assume that you create a separate settings.xml and a separate configuration for the Doctype Maven Plugin. Therefore the following commands provide an explicit settings file (by the -s flag) and a explicit project settings file (by the -DprojectSettingsId system property).

Sample files can be found at src/etc/config in the sample project on Bitbucket.

If you use the default files, just omit this additional parameters on your command line.

To check if everything is in place, run the following command:

Code Block
languagetext
themeMidnight
mvn -s C:\Users\test-user\.m2\settings-external.xml de.smartics.maven.plugin:doctype-maven-plugin:1.0.0:help

It simply shows the information on how to use the mojos of the doctype maven plugin Doctype Maven Plugin.


Section
titleProvide the projectdoc Toolbox Artifact

The PDAC1 add-on is not available in a public repository currently. You need to download the OBR, extract the JAR for the add-on and place it in your repository manually.

Tip Box

Download the OBR for the projectdoc Toolbox from the Atlassian Marketplace. You'll find the download links on the Version history page.

The coordinates are found in the artifact at smartics-projectdoc-confluence-2.4.1.jar\META-INF\maven\de.smartics.atlassian.confluence\smartics-projectdoc-confluence\pom.properties.

Now install the projectdoc Toolbox JAR to your local artifact directory.

Code Block
themeMidnight
mvn -s C:\Users\test-user\.m2\settings-external.xml install:install-file \
  -Dfile=smartics-projectdoc-confluence-2.4.1.jar \
  -DgroupId=de.smartics.atlassian.confluence \
  -DartifactId=smartics-projectdoc-confluence \
  -Dversion=2.4.1 \
  -Dpackaging=jar

For more information on installing JARs, read Usage of the Maven Install Plugin.

Caution Box

Since the JAR of the projectdoc Toolbox you use already contains everything you need, do not add a POM file. Use the one generated by Maven per default.



Section
titleDoctype Maven Plugin

The Doctype Maven Plugin allows to add some static information to your build environment that is used for every build run with this plugin.

The information is defined in the Project Settings. Here is an example:

Code Block
languagexml
<?xml version='1.0'?>

<project-settings
  xmlns="http://smartics.de/xsd/projectdoc/project-settings/1"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <coordinates>
    <groupId>de.scoopee.projectdoc</groupId>
    <artifactIdPrefix>scoopee-doctype-addon-</artifactIdPrefix>
    <modelArtifactIdPrefix>scoopee-doctype-model-</modelArtifactIdPrefix>
  </coordinates>

  <keys>
    <packagePrefix>de.scoopee.projectdoc</packagePrefix>
    <organizationSignature>Kronseder &amp; Reiner GmbH, scooopee</organizationSignature>
  </keys>

  <references>
    <reference
      name="addon-documentation"
      type="confluence">http://www.smartics.eu/confluence/display/PDAC1</reference>
  </references>
</project-settings>

Please adjust the information according to your needs.

Per default this file resides in the same folder as the settings.xml (which is the .m2 folder) and is named project-settings.xml. For this tutorial we assume you create a separate file and name it project-settings-external.xml.


...

Section
titleCreate Project

Run the following command (on a single line) to create a new project containing example models for a space and two doctypes:

Code Block
languagetext
themeMidnight
mvn -s C:\Users\testuser\.m2\settings-external.xml \
     de.smartics.maven.plugin:doctype-maven-plugin:1.0.0:create-model \
     -DprojectSettingsId=project-settings-external \
     -DshortId=mydoctypes \
     -DprojectName="My Doctypes" \
     -DprojectDescription="A project with generated example models."

You'll see a prompt that requests your consent that the properties provided to the Archetype from your environment are correct.

Code Block
languagetext
themeMidnight
[INFO] Using property: groupId = de.scoopee.projectdoc
[INFO] Using property: artifactId = scoopee-doctype-model-mydoctypes
[INFO] Using property: version = 0.1.0-SNAPSHOT
[INFO] Using property: package = de.scoopee.projectdoc.mydoctypes
[INFO] Using property: addon-documentation = http://www.smartics.eu/confluence/display/PDAC1
[INFO] Using property: copyright = Copyright ${year} Kronseder & Reiner GmbH, scooopee
[INFO] Using property: inceptionYear = 2018
[INFO] Using property: modelsFolder = /src/main/resources/projectdoc-models
[INFO] Using property: obrArtifactIdPrefix = scoopee-doctype-addon-
[INFO] Using property: organizationSignature = Kronseder & Reiner GmbH, scooopee
[INFO] Using property: organizationSignatureXml = Kronseder &amp; Reiner GmbH, scooopee
[INFO] Using property: packagePrefix = de.scoopee.projectdoc
[INFO] Using property: projectDescription = A project with generated example models.
[INFO] Using property: projectName = My Doctypes
[INFO] Using property: shortId = mydoctypes
Confirm properties configuration:
groupId: de.scoopee.projectdoc
artifactId: scoopee-doctype-model-mydoctypes
version: 0.1.0-SNAPSHOT
package: de.scoopee.projectdoc.mydoctypes
addon-documentation: http://www.smartics.eu/confluence/display/PDAC1
copyright: Copyright ${year} Kronseder & Reiner GmbH, scooopee
inceptionYear: 2018
modelsFolder: /src/main/resources/projectdoc-models
obrArtifactIdPrefix: scoopee-doctype-addon-
organizationSignature: Kronseder & Reiner GmbH, scooopee
organizationSignatureXml: Kronseder &amp; Reiner GmbH, scooopee
packagePrefix: de.scoopee.projectdoc
projectDescription: A project with generated example models.
projectName: My Doctypes
shortId: mydoctypes
 Y: :

Please hit return to accept the configuration.

Code Block
languagetext
themeMidnight
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: smartics-projectdoc-doctype-model-archetype:1.0.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: de.scoopee.projectdoc
[INFO] Parameter: artifactId, Value: scoopee-doctype-model-mydoctypes
[INFO] Parameter: version, Value: 0.1.0-SNAPSHOT
[INFO] Parameter: package, Value: de.scoopee.projectdoc.mydoctypes
[INFO] Parameter: packageInPathFormat, Value: de/scoopee/projectdoc/mydoctypes
[INFO] Parameter: shortId, Value: mydoctypes
[INFO] Parameter: organizationSignatureXml, Value: Kronseder &amp; Reiner GmbH, scooopee
[INFO] Parameter: groupId, Value: de.scoopee.projectdoc
[INFO] Parameter: obrArtifactIdPrefix, Value: scoopee-doctype-addon-
[INFO] Parameter: packagePrefix, Value: de.scoopee.projectdoc
[INFO] Parameter: modelsFolder, Value: /src/main/resources/projectdoc-models
[INFO] Parameter: inceptionYear, Value: 2018
[INFO] Parameter: organizationSignature, Value: Kronseder & Reiner GmbH, scooopee
[INFO] Parameter: addon-documentation, Value: http://www.smartics.eu/confluence/display/PDAC1
[INFO] Parameter: projectDescription, Value: A project with generated example models.
[INFO] Parameter: version, Value: 0.1.0-SNAPSHOT
[INFO] Parameter: copyright, Value: Copyright ${year} Kronseder & Reiner GmbH, scooopee
[INFO] Parameter: package, Value: de.scoopee.projectdoc.mydoctypes
[INFO] Parameter: artifactId, Value: scoopee-doctype-model-mydoctypes
[INFO] Parameter: projectName, Value: My Doctypes
[WARNING] The directory D:\Projekte\repositories\git\scoopee-doctype-model-mydoctypes already exists.
[INFO] Project created from Archetype in dir: D:\Projekte\repositories\git\scoopee-doctype-model-mydoctypes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:10 min
[INFO] Finished at: 2018-11-18T17:30:08+01:00
[INFO] Final Memory: 16M/180M
[INFO] ------------------------------------------------------------------------

The project is created successfully.

...

Section
titleManual Adjustments

Apply the following changes to the generated code:

Section
titleVersions

The versions of the Doctype Maven Plugin and the version of the projectdoc Toolbox need to be updated to the latest versions.

Code Block
languagexml
    <version.smartics-projectdoc-confluence>2.4.1</version.smartics-projectdoc-confluence>
    <version.doctype-maven-plugin>1.0.0</version.doctype-maven-plugin>



Section
titleCopyright Notice

Due to a bug in version 1.0 of the Doctype Maven Plugin you need to manually fix the inception year in the COPYRIGHT.txt. Simply replace the placeholder ${year} with the current year (e.g. 2018).

Skip this step if you discard this test project anyway.


Section
titleLicense Header

The default configuration uses the Version License Maven Plugin to add license information to the header files.

To create the correct headers run the following command:

Code Block
languagetext
themeMidnight
mvn initialize license:format

You will encounter the following message if the headers do not match the required format:

Code Block
languagetext
themeMidnight
[INFO] --- maven-license-plugin:1.9.0:check (default) @ scoopee-doctype-model-mydoctypes ---
[INFO] Checking licenses...
[INFO] Missing header in: D:\Projekte\repositories\git\scoopee-doctype-model-mydoctypes\src\main\resources\projectdoc-models\add-on.xml
[INFO] Missing header in: D:\Projekte\repositories\git\scoopee-doctype-model-mydoctypes\src\etc\config\settings-external.xml
[INFO] Missing header in: D:\Projekte\repositories\git\scoopee-doctype-model-mydoctypes\src\main\resources\projectdoc-models\doctypes\sample-doctype.xml
[INFO] Missing header in: D:\Projekte\repositories\git\scoopee-doctype-model-mydoctypes\src\etc\config\project-settings-external.xml
[INFO] Missing header in: D:\Projekte\repositories\git\scoopee-doctype-model-mydoctypes\src\main\resources\projectdoc-models\spaces\main-space.xml
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.591 s (Wall Clock)
[INFO] Finished at: 2018-11-18T19:14:53+01:00
[INFO] Final Memory: 75M/346M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.mycila.maven-license-plugin:maven-license-plugin:1.9.0:check (default) on project scoopee-doctype-model-mydoctypes: Some files do not have the expected license header -> [Help 1]



...

Section
titlePackage Doctype Add-on

Run the following command (on a single line):

Code Block
languagetext
themeMidnight
mvn -s C:\Users\testuser\.m2\settings-external.xml \
     clean package \
     -DprojectSettingsId=project-settings-external


Info Box

If you encounter the following error message with a failed build, you skipped the configuration step where the projectdoc Toolbox artifact has been deployed to your build environment.

Code Block
languagetext
themeMidnight
[ERROR] Failed to execute goal 
de.smartics.maven.plugin:doctype-maven-plugin:1.0.0:build (build-obr) 
on project scoopee-doctype-model-mydoctypes: Cannot build project! 
[org.apache.maven.lifecycle.LifecycleExecutionException: Failed to 
execute goal on project scoopee-doctype-addon-mydoctypes: Could not 
resolve dependencies for project 
de.scoopee.projectdoc:scoopee-doctype-addon-mydoctypes:atlassian-plugin:0.1.0-SNAPSHOT: 
Could not find artifact 
de.smartics.atlassian.confluence:smartics-projectdoc-confluence:jar:2.4.1 
in atlassian-public (https://maven.atlassian.com/repository/public)]



...

Section
titleRun Confluence with your Doctype Add-on

After successful build change to the target folder and run the Confluence server.

Code Block
languagetext
themeMidnight
cd target\scoopee-doctype-model-mydoctypes
atlas-debug


Section
titleProvide a Developer License

Go to the add-on administration page and show system add-ons. This lists the projectdoc Toolbox with a blue button named "Free trial". Click this button in case you have not already a license you can use for your development box.


Section
titleCreate a Space

Launch the space wizard and create a new space provided by your add-on.

Note Box
titleSeems broken on the left side?

The navigation links are activated when a copy of the Core Doctype Add-on is deployed to the server.

Simply download the artifact from the Atlassian Marketplace. No license required on the Confluence server since this add-on is licensed under the Apache License and can be used free of charge.

The rest of the tutorial will work regardless of installing the add-on or not.



Section
titleCreate a Document


...

Section
titleWorking with your Project

Check your model project to your version control. The add-on project, which is created in the target folder, can always be created from the model files.

So typically you

  1. make changes to your files,
  2. package them,
  3. change to the generated project in the target folder and
  4. start the Confluence server with the Atlassian SDK.
projectdoc-box-tip

In projectdoc Model Descriptors the descriptors for add-on, spaces, and doctypes are specified.



projectdoc-section
titleSubordinate Topics
Display Table
doctypetopic
render-no-hits-as-blanktrue
render-modedefinition
selectName, Short Description
restrict-to-immediate-childrentrue
sort-bySort Key, Name

...

Section
titleResources


Tour
render-no-hits-as-blanktrue
render-as-definition-listtrue
marker-column-property-nameTitle
replace-title-with-nametrue