Skip to content

Instantly share code, notes, and snippets.

@siepkes
Last active January 29, 2024 05:33
Show Gist options
  • Save siepkes/00f0c410933271b4f4e0d5eab18d7469 to your computer and use it in GitHub Desktop.
Save siepkes/00f0c410933271b4f4e0d5eab18d7469 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ksh93
if [ ! -d "$1" ]; then
echo "First argument must be the directory where the runtime ZIP has been extracted. For example '~/Downloads/birt'."
exit 1
fi
RUNTIME_PATH=${1}
LIB_PATH="${RUNTIME_PATH}/ReportEngine/lib"
ADDONS_PATH="${RUNTIME_PATH}/ReportEngine/addons"
GROUP_ID_BASE="nl.serviceplanet.org.eclipse.birt"
function deploy {
FILE="${1}"
GROUP_ID="${2}"
ARTIFACT_ID="${3}"
ARTIFACT_VERSION="${4}"
# Reposilite will always serve the POM inside the JAR instead of the one we generate. Unfortunately this POM is
# incorrect (contains deps with -SNAPSHOT versions). Therefor we delete it from the JAR's.
zip --delete ${FILE} "META-INF/maven/*"
mvn deploy:deploy-file -Durl=https://reposilite.serviceplanet.nl/third-party \
-DgeneratePom=true \
-DrepositoryId=third-party \
-Dfile=${FILE} \
-DgroupId=${GROUP_ID} \
-DartifactId=${ARTIFACT_ID} \
-Dversion=${ARTIFACT_VERSION} \
-Dpackaging=jar \
-Ddescription="Service Planet packaged Eclipse BIRT."
}
# Configured for the 'birt-runtime-4.13.0-20230309.zip' BIRT runtime ZIP file. Modify when updating.
# Core
deploy "${LIB_PATH}/org.eclipse.birt.runtime_4.13.0-20230302.jar" "${GROUP_ID_BASE}" "org.eclipse.birt.runtime" "4.13.0"
deploy "${LIB_PATH}/org.eclipse.datatools.connectivity.oda.consumer_3.4.101.201811012051.jar" "${GROUP_ID_BASE}" "org.eclipse.datatools.connectivity.oda.consumer" "3.4.101"
deploy "${LIB_PATH}/org.eclipse.datatools.connectivity.oda_3.6.101.201811012051.jar" "${GROUP_ID_BASE}" "org.eclipse.datatools.connectivity.oda" "3.6.101"
deploy "${LIB_PATH}/org.eclipse.datatools.connectivity_1.14.102.201911250848.jar" "${GROUP_ID_BASE}" "org.eclipse.datatools.connectivity" "1.14.102"
deploy "${LIB_PATH}/org.eclipse.emf.common_2.28.0.v20230223-0922.jar" "${GROUP_ID_BASE}" "org.eclipse.emf.common" "2.28.0"
deploy "${LIB_PATH}/org.eclipse.emf.ecore.xmi_2.18.0.v20230211-1150.jar" "${GROUP_ID_BASE}" "org.eclipse.emf.ecore.xmi" "2.18.0"
deploy "${LIB_PATH}/org.eclipse.emf.ecore_2.33.0.v20230226-0921.jar" "${GROUP_ID_BASE}" "org.eclipse.emf.ecore" "2.33.0"
deploy "${LIB_PATH}/org.eclipse.equinox.common_3.16.200.v20220817-1601.jar" "${GROUP_ID_BASE}" "org.eclipse.equinox.common" "3.16.200"
deploy "${LIB_PATH}/org.eclipse.equinox.registry_3.11.200.v20220817-1601.jar" "${GROUP_ID_BASE}" "org.eclipse.equinox.registry" "3.11.200"
deploy "${LIB_PATH}/org.eclipse.osgi_3.18.100.v20220817-1601.jar" "${GROUP_ID_BASE}" "org.eclipse.osgi" "3.18.100"
deploy "${LIB_PATH}/com.github.librepdf.openpdf_1.3.26.jar" "${GROUP_ID_BASE}" "com.github.librepdf.openpdf" "1.3.26"
deploy "${LIB_PATH}/org.apache.batik.anim_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.anim" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.awt.util_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.awt.util" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.bridge_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.bridge" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.css_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.css" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.constants_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.constants" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.dom_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.dom" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.ext_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.ext" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.gvt_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.gvt" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.i18n_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.i18n" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.parser_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.parser" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.script_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.script" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.dom.svg_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.dom.svg" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.transcoder_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.transcoder" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.util_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.util" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.xml_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.xml" "1.14.0"
deploy "${LIB_PATH}/org.apache.xerces_2.12.2.v20220131-0835.jar" "${GROUP_ID_BASE}" "org.apache.xerces" "2.12.2"
deploy "${LIB_PATH}/org.apache.xmlgraphics_2.6.0.v20210409-0748.jar" "${GROUP_ID_BASE}" "org.apache.xmlgraphics" "2.6.0"
deploy "${LIB_PATH}/wrapped.com.ibm.icu.icu4j_3.8.0.jar" "${GROUP_ID_BASE}" "wrapped.com.ibm.icu.icu4j" "3.8.0"
deploy "${LIB_PATH}/org.eclipse.core.runtime_3.26.0.v20220813-0916.jar" "${GROUP_ID_BASE}" "org.eclipse.core.runtime" "3.26.0"
deploy "${LIB_PATH}/org.mozilla.javascript_1.7.10.v20190430-1943.jar" "${GROUP_ID_BASE}" "org.mozilla.javascript" "1.7.10"
deploy "${LIB_PATH}/org.w3c.dom.smil_1.0.1.v200903091627.jar" "${GROUP_ID_BASE}" "org.w3c.dom.smil" "1.0.1"
deploy "${LIB_PATH}/org.w3c.dom.svg_1.1.0.v201011041433.jar" "${GROUP_ID_BASE}" "org.w3c.dom.svg" "1.1.0"
deploy "${LIB_PATH}/org.w3c.css.sac_1.3.1.v200903091627.jar" "${GROUP_ID_BASE}" "org.w3c.css.sac" "1.3.1"
# Addons
deploy "${ADDONS_PATH}/org.eclipse.datatools.enablement.oda.xml_1.4.102.201901091730.jar" "${GROUP_ID_BASE}" "org.eclipse.datatools.enablement.oda.xml" "1.4.102"
<!-- BIRT Runtime -->
<!-- WARNING! READ THIS BEFORE UPDATING OR CHANGING! -->
<!-- BIRT doesn't upload these artifacts to Maven central anymore. The 'org.eclipse.birt.runtime' artifact -->
<!-- also doesn't have a POM which specifies all of it dependencies anymore (used to have it). -->
<!-- Therefor the 'install_birt_in_maven_repo.ksh' script in the root of the 'server.reporting' module -->
<!-- can be used to upload the necessary dependencies to our Maven repo from a BIRT runtime ZIP such as -->
<!-- 'birt-runtime-4.13.0-20230309.zip'. When updating BIRT you will need to update the 'install_birt_in_maven_repo' -->
<!-- file and modify the dependencies below. Unfortunately I (@siepkes) don't know of an airtight way -->
<!-- to get all the dependencies needed so use this as a template and apply trail and error. -->
<!-- Currently configured for BIRT: 4.13.0-20230309 (birt-runtime-4.13.0-20230309.zip) -->
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.runtime</artifactId>
<version>4.13.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.datatools.connectivity.oda.consumer</artifactId>
<version>3.4.101</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.datatools.connectivity.oda</artifactId>
<version>3.6.101</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.datatools.connectivity</artifactId>
<version>1.14.102</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.emf.common</artifactId>
<version>2.28.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.emf.ecore.xmi</artifactId>
<version>2.18.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.emf.ecore</artifactId>
<version>2.33.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.equinox.common</artifactId>
<version>3.16.200</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.equinox.registry</artifactId>
<version>3.11.200</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.osgi</artifactId>
<version>3.18.100</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>com.github.librepdf.openpdf</artifactId>
<version>1.3.26</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.anim</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.awt.util</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.bridge</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.dom</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.gvt</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.i18n</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.parser</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.script</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.dom.svg</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.ext</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.transcoder</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.util</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.xml</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.css</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.constants</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.xerces</artifactId>
<version>2.12.2</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.xmlgraphics</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>wrapped.com.ibm.icu.icu4j</artifactId>
<version>3.8.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.core.runtime</artifactId>
<version>3.26.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.mozilla.javascript</artifactId>
<version>1.7.10</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.w3c.dom.smil</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.w3c.dom.svg</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.w3c.css.sac</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.datatools.enablement.oda.xml</artifactId>
<version>1.4.102</version>
</dependency>
@dmdymov
Copy link

dmdymov commented May 10, 2023

What do you need to add as a dependency for the compiled project to work? nl.serviceplanet.org.eclipse.birt:org.eclipse.birt.runtime:4.13 or something else?

@siepkes
Copy link
Author

siepkes commented May 11, 2023

@dmdymov The script (install_birt_in_maven_repo-ksh) in this gist is used to install the artifacts in your local repository. You can then copy-paste the stuff in the pom.xml of this gist in your own pom.xml which adds the needed depedencies (so you need all the depedencies which are in the pom.xml of this gist). I've also updated the pom.xml and script in this gist to the most recent version I'm using.

BTW You should modify the location the script tries to upload the artifacts. Currently it says https://maven.serviceplanet.nl/third-party but that's our artifact repository. You should change the URL to your own artifact repository. You could also modify the command to install it locally in your $HOME/.m2/repository I think.

@dmdymov
Copy link

dmdymov commented May 11, 2023

Thank you 🙏

@kulgan
Copy link

kulgan commented Oct 16, 2023

This is exactly what I needed, spent hours trying to do this manually. Thank you so much

@davidwwd2011
Copy link

It is very inconvient for birt runtime not being available in MAVEN CENTRAL.
It is great to the above info. I will give it a try. Thanks.

@davidwwd2011
Copy link

Thanks for your posting of the script and pom.xml. I made some modification for window installation. Two jars cannot be installed: org.eclipse.datatools.connectivity.oda.consumer and org.eclipse.datatools.connectivity.oda.consumer due to missing pom (?).

Compiling OK. But when I run the report (with RedHut JDK 11) I still get the same error:
class "org.mozilla.javascript.RhinoException"'s signer information does not match signer information of other classes in the same package

Any suggestion?

@siepkes
Copy link
Author

siepkes commented Nov 28, 2023

@davidwwd2011

Two jars cannot be installed: org.eclipse.datatools.connectivity.oda.consumer and org.eclipse.datatools.connectivity.oda.consumer due to missing pom (?)

That's kinda weird (and could be a symptom of a bigger issue) because the -DgeneratePom=true flag should generate new POM's regardless if the JAR has an existing POM.

Compiling OK. But when I run the report (with RedHut JDK 11) I still get the same error:
class "org.mozilla.javascript.RhinoException"'s signer information does not match signer information of other classes in the same package

You could try adding something like zip --delete ${FILE} "META-INF/*.RSA" "META-INF/*.SF" (I haven't tested this so you might need to tweak the command a bit) to the script which should delete all signing information from the JAR. If there are no signatures in the JAR Java won't complain about incorrect signature.

Also be sure to delete old artifacts in your ~/.m2/repository/ if you are uploading the artifacts as a release version from a remote repository. Otherwise Maven will keep using the old ones, even if you have uploaded new ones (with the same version) to your remote repository. Or you could also change the version of the uploaded artifacts.

@davidwwd2011
Copy link

davidwwd2011 commented Nov 29, 2023

@siepkes
Thank you for your info. What I did is to install to my local m2/repository for testing first. After I added -DgeneratePom=true, the two jars are installed correctly. My local testing seems OK now, now I will try to deploy them to my company's remote repository. You post really helped me to complete the BIRT Upgrade from 4.4.2 to 4.13.0

To help people who might be instrested, I will post my local ~/.m2/repository/ installation script below.
(I am using RedHat JDK 11 which seems has problem with org.mozilla.javascript in org.mozilla.javascript. So I intentionally do not install it but replace it with rhino-runtime).

DOS Batch file:

set JAVA_HOME=<your_jdk_home>
set MVN_CMD=call  <your_maven_folder>/bin/mvn
set RUNTIME_PATH=D:/birt-runtime-4.13.0-20230302
set LIB_PATH=%RUNTIME_PATH%/ReportEngine/lib
set ADDONS_PATH=%RUNTIME_PATH%/ReportEngine/addons
set GROUP_ID_BASE=birt_runtime.org.eclipse.birt

# BIRT CORE 
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.eclipse.birt.runtime_4.13.0-20230302.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.eclipse.birt.runtime" -Dversion="4.13.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.eclipse.datatools.connectivity.oda.consumer_3.4.101.201811012051.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.eclipse.datatools.connectivity.oda.consumer" -Dversion="3.4.101" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.eclipse.datatools.connectivity.oda_3.6.101.201811012051.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.eclipse.datatools.connectivity.oda" -Dversion="3.6.101" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.eclipse.datatools.connectivity_1.14.102.201911250848.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.eclipse.datatools.connectivity" -Dversion="1.14.102" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.eclipse.emf.common_2.28.0.v20230223-0922.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.eclipse.emf.common" -Dversion="2.28.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.eclipse.emf.ecore.xmi_2.18.0.v20230211-1150.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.eclipse.emf.ecore.xmi" -Dversion="2.18.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.eclipse.emf.ecore_2.33.0.v20230226-0921.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.eclipse.emf.ecore" -Dversion="2.33.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.eclipse.equinox.common_3.16.200.v20220817-1601.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.eclipse.equinox.common" -Dversion="3.16.200" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.eclipse.equinox.registry_3.11.200.v20220817-1601.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.eclipse.equinox.registry" -Dversion="3.11.200" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.eclipse.osgi_3.18.100.v20220817-1601.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.eclipse.osgi" -Dversion="3.18.100" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/com.github.librepdf.openpdf_1.3.26.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="com.github.librepdf.openpdf" -Dversion="1.3.26" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.batik.anim_1.14.0.v20210324-0332.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.batik.anim" -Dversion="1.14.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.batik.awt.util_1.14.0.v20210324-0332.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.batik.awt.util" -Dversion="1.14.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.batik.bridge_1.14.0.v20210324-0332.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.batik.bridge" -Dversion="1.14.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.batik.css_1.14.0.v20210324-0332.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.batik.css" -Dversion="1.14.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.batik.constants_1.14.0.v20210324-0332.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.batik.constants" -Dversion="1.14.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.batik.dom_1.14.0.v20210324-0332.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.batik.dom" -Dversion="1.14.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.batik.ext_1.14.0.v20210324-0332.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.batik.ext" -Dversion="1.14.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.batik.gvt_1.14.0.v20210324-0332.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.batik.gvt" -Dversion="1.14.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.batik.i18n_1.14.0.v20210324-0332.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.batik.i18n" -Dversion="1.14.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.batik.parser_1.14.0.v20210324-0332.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.batik.parser" -Dversion="1.14.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.batik.script_1.14.0.v20210324-0332.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.batik.script" -Dversion="1.14.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.batik.dom.svg_1.14.0.v20210324-0332.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.batik.dom.svg" -Dversion="1.14.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.batik.transcoder_1.14.0.v20210324-0332.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.batik.transcoder" -Dversion="1.14.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.batik.util_1.14.0.v20210324-0332.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.batik.util" -Dversion="1.14.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.batik.xml_1.14.0.v20210324-0332.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.batik.xml" -Dversion="1.14.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.xerces_2.12.2.v20220131-0835.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.xerces" -Dversion="2.12.2" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.apache.xmlgraphics_2.6.0.v20210409-0748.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.apache.xmlgraphics" -Dversion="2.6.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/wrapped.com.ibm.icu.icu4j_3.8.0.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="wrapped.com.ibm.icu.icu4j" -Dversion="3.8.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.eclipse.core.runtime_3.26.0.v20220813-0916.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.eclipse.core.runtime" -Dversion="3.26.0" -Dpackaging=jar
rem %MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.mozilla.javascript_1.7.10.v20190430-1943.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.mozilla.javascript" -Dversion="1.7.10" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.w3c.dom.smil_1.0.1.v200903091627.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.w3c.dom.smil" -Dversion="1.0.1" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.w3c.dom.svg_1.1.0.v201011041433.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.w3c.dom.svg" -Dversion="1.1.0" -Dpackaging=jar
%MVN_CMD% install:install-file -DgeneratePom=true -Dfile=%LIB_PATH%/org.w3c.css.sac_1.3.1.v200903091627.jar -DgroupId=%GROUP_ID_BASE% -DartifactId="org.w3c.css.sac" -Dversion="1.3.1" -Dpackaging=jar

# Addons
%MVN_CMD% install:install-file -Dfile=%ADDONS_PATH%/org.eclipse.datatools.enablement.oda.xml_1.4.102.201901091730.jar -DgroupId=%GROUP_ID_BASE% -DartifactId=org.eclipse.datatools.enablement.oda.xml -Dversion=1.4.102 -Dpackaging=jar

After running the batch installation, I add the dependencies in POM for my local testing:

	<!-- Currently configured for BIRT: 4.13.0-20230309 (birt-runtime-4.13.0-20230309.zip) -->
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.eclipse.birt.runtime</artifactId>
			<version>4.13.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.eclipse.birt.runtime/4.13.0/org.eclipse.birt.runtime-4.13.0.jar</systemPath>			
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.eclipse.datatools.connectivity.oda.consumer</artifactId>
			<version>3.4.101</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.eclipse.datatools.connectivity.oda.consumer/3.4.101/org.eclipse.datatools.connectivity.oda.consumer-3.4.101.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.eclipse.datatools.connectivity.oda</artifactId>
			<version>3.6.101</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.eclipse.datatools.connectivity.oda/3.6.101/org.eclipse.datatools.connectivity.oda-3.6.101.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.eclipse.datatools.connectivity</artifactId>
			<version>1.14.102</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.eclipse.datatools.connectivity/1.14.102/org.eclipse.datatools.connectivity-1.14.102.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.eclipse.emf.common</artifactId>
			<version>2.28.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.eclipse.emf.common/2.28.0/org.eclipse.emf.common-2.28.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.eclipse.emf.ecore.xmi</artifactId>
			<version>2.18.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.eclipse.emf.ecore.xmi/2.18.0/org.eclipse.emf.ecore.xmi-2.18.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.eclipse.emf.ecore</artifactId>
			<version>2.33.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.eclipse.emf.ecore/2.33.0/org.eclipse.emf.ecore-2.33.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.eclipse.equinox.common</artifactId>
			<version>3.16.200</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.eclipse.equinox.common/3.16.200/org.eclipse.equinox.common-3.16.200.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.eclipse.equinox.registry</artifactId>
			<version>3.11.200</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.eclipse.equinox.registry/3.11.200/org.eclipse.equinox.registry-3.11.200.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.eclipse.osgi</artifactId>
			<version>3.18.100</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.eclipse.osgi/3.18.100/org.eclipse.osgi-3.18.100.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>com.github.librepdf.openpdf</artifactId>
			<version>1.3.26</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/com.github.librepdf.openpdf/1.3.26/com.github.librepdf.openpdf-1.3.26.jar</systemPath><!--Manu Copy!!-->
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.apache.batik.anim</artifactId>
			<version>1.14.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.apache.batik.anim/1.14.0/org.apache.batik.anim-1.14.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.apache.batik.awt.util</artifactId>
			<version>1.14.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.apache.batik.awt.util/1.14.0/org.apache.batik.awt.util-1.14.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.apache.batik.bridge</artifactId>
			<version>1.14.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.apache.batik.bridge/1.14.0/org.apache.batik.bridge-1.14.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.apache.batik.css</artifactId>
			<version>1.14.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.apache.batik.css/1.14.0/org.apache.batik.css-1.14.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.apache.batik.constants</artifactId>
			<version>1.14.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.apache.batik.constants/1.14.0/org.apache.batik.constants-1.14.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.apache.batik.dom</artifactId>
			<version>1.14.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.apache.batik.dom/1.14.0/org.apache.batik.dom-1.14.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.apache.batik.ext</artifactId>
			<version>1.14.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.apache.batik.ext/1.14.0/org.apache.batik.ext-1.14.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.apache.batik.gvt</artifactId>
			<version>1.14.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.apache.batik.gvt/1.14.0/org.apache.batik.gvt-1.14.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.apache.batik.i18n</artifactId>
			<version>1.14.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.apache.batik.i18n/1.14.0/org.apache.batik.i18n-1.14.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.apache.batik.parser</artifactId>
			<version>1.14.0</version>
			<scope>system</scope>			
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.apache.batik.parser/1.14.0/org.apache.batik.parser-1.14.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.apache.batik.script</artifactId>
			<version>1.14.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.apache.batik.script/1.14.0/org.apache.batik.script-1.14.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.apache.batik.dom.svg</artifactId>
			<version>1.14.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.apache.batik.dom.svg/1.14.0/org.apache.batik.dom.svg-1.14.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>			
			<artifactId>org.apache.batik.transcoder</artifactId>
			<version>1.14.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.apache.batik.transcoder/1.14.0/org.apache.batik.transcoder-1.14.0.jar</systemPath>
		</dependency>		
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.apache.batik.util</artifactId>
			<version>1.14.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.apache.batik.util/1.14.0/org.apache.batik.util-1.14.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.apache.batik.xml</artifactId>
			<version>1.14.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.apache.batik.xml/1.14.0/org.apache.batik.xml-1.14.0.jar</systemPath>
		</dependency>		
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.apache.xerces</artifactId>
			<version>2.12.2</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.apache.xmlgraphics/2.6.0/org.apache.xmlgraphics-2.6.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.apache.xmlgraphics</artifactId>
			<version>2.6.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.eclipse.birt.runtime/4.13.0/org.eclipse.birt.runtime-4.13.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>wrapped.com.ibm.icu.icu4j</artifactId>
			<version>3.8.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/wrapped.com.ibm.icu.icu4j/3.8.0/wrapped.com.ibm.icu.icu4j-3.8.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.eclipse.core.runtime</artifactId>
			<version>3.26.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.eclipse.core.runtime/3.26.0/org.eclipse.core.runtime-3.26.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.w3c.dom.smil</artifactId>
			<version>1.0.1</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.w3c.dom.smil/1.0.1/org.w3c.dom.smil-1.0.1.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.w3c.dom.svg</artifactId>
			<version>1.1.0</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.w3c.dom.svg/1.1.0/org.w3c.dom.svg-1.1.0.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.w3c.css.sac</artifactId>
			<version>1.3.1</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.w3c.css.sac/1.3.1/org.w3c.css.sac-1.3.1.jar</systemPath>
		</dependency>
		<dependency>
			<groupId>birt_runtime.org.eclipse.birt</groupId>
			<artifactId>org.eclipse.datatools.enablement.oda.xml</artifactId>
			<version>1.4.102</version>
			<scope>system</scope>
			<systemPath>${user.home}/.m2/repository/birt_runtime/org/eclipse/birt/org.eclipse.datatools.enablement.oda.xml/1.4.102/org.eclipse.datatools.enablement.oda.xml-1.4.102.jar</systemPath>
		</dependency>

                <!-- https://mvnrepository.com/artifact/org.mozilla/rhino-runtime -->
		<dependency>
		    <groupId>org.mozilla</groupId>
		    <artifactId>rhino-runtime</artifactId>
		    <version>1.7.14</version>
		</dependency>

For local testing using the local BIRT repository, add option -o below:
mvn clean install -o

@siepkes
Copy link
Author

siepkes commented Jan 2, 2024

That would be something like ./install_birt_in_maven_repo.ksh ~/Downloads/birt. The ~/Downloads/birt directory should contain the contents of the BIRT runtime zip file (birt-runtime-4.13.0-20230309.zip).

If you post the error you are seeing I might be able to help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment