documents4j-parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-parent</artifactId>
<version>1.1.13</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-parent</artifactId>
<version>1.1.13</version>
<packaging>pom</packaging>
<!--
Note: This project can be built on any machine. However, any MS Office specific test requires an installation
of MS Office for Windows on the same physical machine. For running these tests, activate the 'ms-office' profile.
Additionally, the following setup is required:
(1) An installation of the Microsoft Scripting Host (comes with most versions of MS Windows).
(2) An installation of Microsoft Word 2007 or higher (MS Word 2007 additionally requires the PDF plugin) or
and installation of Microsoft Excel 2007 or higher.
(3) Microsoft Word and Microsoft Excel are not running when the built process is started and are neither started
manually while the tests are running.
(4) Microsoft Word and Microsoft Excel are properly activated and do not require any startup configuration.
If MS Word or MS Excel are starting a wizard on program startup, any conversion attempts will fail.
Furthermore, for running the tests of the documents4j-server-standalone module, you require:
(4) Your machine must have a free port and it must be possible to bind a server listener to this port
(the Jersey related tests suggest port 9998 to be available for testing).
Many tests throughout all modules require:
(5) Possibility to create temporary folders on the local file system and creating, deleting and executing
files in these folders.
Please note that Microsoft does not recommend or officially supports MS Office automation. Also note the legal
requirements to run MS Office in a server context on 'http://support.microsoft.com/kb/257757'.
Also, be careful when running a local MS Word or MS Excel transformer since they require synchronization with
the MS Office installation. When the JVM running this program exits abnormally (for example by a user interrupt
causing a process termination signal), the application cannot run any shut down hooks to terminate MS Office
components. The MS Office process will therefore leak. When developing and testing this application, always
keep an eye on your machine's task manager. However, note that documents4j attempts to pick up orphaned MS
Office processes on startup, i.e. due to an unexpected restart.
Profile summary:
(1) ms-office: Runs tests that require MS Word and MS Excel installed on MS Windows.
(2) shaded-jar: Build a shaded jar for the standalone conversion server and standalone client
(3) javadoc: build javadoc
(4) source: build source jar
(5) checks: Perform additional source code checks (activated by default).
Note that MS Office components do not officially support their execution in a service context. When run as a
service, MS Office components are always started with MS Window's local service account which does not configure
a desktop. However, MS Office components expect a desktop to exist in order to run properly. Without such a
desktop configuration, MS Office will start up correctly but fail to read any input file. In order to allow
MS Office components to run in a service context, there are two possible approaches of which the first approach is
more recommended:
(1) On a 32-bit system, create the folder 'C:\Windows\System32\config\systemprofile\Desktop'.
On a 64-bit system, create the folder 'C:\Windows\SysWOW64\config\systemprofile\Desktop'.
For more information, see
'http://social.msdn.microsoft.com/Forums/en-US/b81a3c4e-62db-488b-af06-44421818ef91/excel-2007-automation-on-top-of-a-windows-server-2008-x64?forum=innovateonoffice'.
(2) You can manipulate MS Window's registry such that MS Office applications are run with another account than
the local service account. For an explanation of this approach, see
'http://social.technet.microsoft.com/Forums/en-US/334c9f30-4e27-4904-9e71-abfc65975e23/problem-running-windows-service-with-excel-object-on-windows-server-2008-64-bit?forum=officesetupdeploylegacy'.
-->
<modules>
<module>documents4j-api</module>
<module>documents4j-local</module>
<module>documents4j-local-demo</module>
<module>documents4j-transformer</module>
<module>documents4j-transformer-api</module>
<module>documents4j-transformer-msoffice</module>
<module>documents4j-client</module>
<module>documents4j-client-standalone</module>
<module>documents4j-server</module>
<module>documents4j-server-standalone</module>
<module>documents4j-aggregation</module>
<module>documents4j-util-all</module>
<module>documents4j-util-conversion</module>
<module>documents4j-util-ws</module>
<module>documents4j-util-standalone</module>
<module>documents4j-util-transformer-process</module>
<module>documents4j-test</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<shaded.classifier>shaded</shaded.classifier>
<version.jakarta.rs>3.0.0</version.jakarta.rs>
<version.javax.servlet>3.0.1</version.javax.servlet>
<version.jakarta.inject>2.0.0</version.jakarta.inject>
<version.jakarta.bind>3.0.0</version.jakarta.bind>
<version.glassfish.jaxb>3.0.2</version.glassfish.jaxb>
<version.jersey>3.0.2</version.jersey>
<version.guava>30.0-jre</version.guava>
<version.zt-exec>1.11</version.zt-exec>
<version.jopt-simple>5.0.4</version.jopt-simple>
<version.slf4j>2.0.13</version.slf4j>
<version.logback>1.5.6</version.logback>
<version.junit>4.13.1</version.junit>
<version.mockito>3.0.0</version.mockito>
<version.thread-weaver>0.2</version.thread-weaver>
<version.jetty>9.4.20.v20190813</version.jetty>
<version.logstash.encoder>7.4</version.logstash.encoder>
<version.maven.compiler-plugin>3.13.0</version.maven.compiler-plugin>
<version.maven.surefire-plugin>3.2.5</version.maven.surefire-plugin>
<version.maven.source-plugin>3.3.1</version.maven.source-plugin>
<version.maven.javadoc-plugin>3.7.0</version.maven.javadoc-plugin>
<version.maven.gpg-plugin>3.2.4</version.maven.gpg-plugin>
<version.maven.war-plugin>3.4.0</version.maven.war-plugin>
<version.maven.shade-plugin>3.6.0</version.maven.shade-plugin>
<version.maven.cobertura-plugin>2.7</version.maven.cobertura-plugin>
<version.maven.checkstyle-plugin>2.15</version.maven.checkstyle-plugin>
<version.maven.resources-plugin>3.3.1</version.maven.resources-plugin>
<version.maven.release-plugin>3.0.1</version.maven.release-plugin>
<version.maven.install-plugin>3.1.2</version.maven.install-plugin>
<version.maven.jxr-plugin>3.4.0</version.maven.jxr-plugin>
<version.java>11</version.java>
</properties>
<developers>
<developer>
<id>raphw</id>
<name>Rafael Winterhalter</name>
<email>rafael.wth@gmail.com</email>
<url>http://rafael.codes</url>
<roles>
<role>developer</role>
</roles>
<timezone>+1</timezone>
</developer>
</developers>
<inceptionYear>2013</inceptionYear>
<url>http://documents4j.com</url>
<name>documents4j</name>
<description>A Java library for converting documents.</description>
<scm>
<connection>scm:git:git@github.com:documents4j/documents4j.git</connection>
<developerConnection>scm:git:git@github.com:documents4j/documents4j.git</developerConnection>
<url>git@github.com:documents4j/documents4j.git</url>
<tag>documents4j-1.1.13</tag>
</scm>
<issueManagement>
<system>github.com</system>
<url>https://github.com/documents4j/documents4j/issues</url>
</issueManagement>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
<comments>A business-friendly OSS license</comments>
</license>
</licenses>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>${version.maven.jxr-plugin}</version>
</plugin>
</plugins>
</reporting>
<distributionManagement>
<snapshotRepository>
<id>central</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>central</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
</repository>
</distributionManagement>
<dependencyManagement>
<dependencies>
<!-- General -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${version.guava}</version>
</dependency>
<dependency>
<groupId>org.zeroturnaround</groupId>
<artifactId>zt-exec</artifactId>
<version>${version.zt-exec}</version>
</dependency>
<dependency>
<groupId>net.sf.jopt-simple</groupId>
<artifactId>jopt-simple</artifactId>
<version>${version.jopt-simple}</version>
</dependency>
<!-- Jersey -->
<dependency>
<groupId>org.glassfish.jersey</groupId>
<artifactId>jersey-bom</artifactId>
<version>${version.jersey}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>${version.jersey}</version>
</dependency>
<!-- Java extensions -->
<dependency>
<groupId>jakarta.ws.rs</groupId>
<artifactId>jakarta.ws.rs-api</artifactId>
<version>${version.jakarta.rs}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${version.javax.servlet}</version>
</dependency>
<dependency>
<groupId>jakarta.inject</groupId>
<artifactId>jakarta.inject-api</artifactId>
<version>${version.jakarta.inject}</version>
</dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>${version.jakarta.bind}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>${version.glassfish.jaxb}</version>
</dependency>
<!-- Testing / Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${version.slf4j}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${version.slf4j}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${version.logback}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>${version.slf4j}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${version.junit}</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${version.mockito}</version>
</dependency>
<dependency>
<groupId>com.googlecode.thread-weaver</groupId>
<artifactId>threadweaver</artifactId>
<version>${version.thread-weaver}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<!-- Release configuration -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${version.maven.release-plugin}</version>
<configuration>
<useReleaseProfile>false</useReleaseProfile>
<releaseProfiles>shaded-jar,javadoc,source</releaseProfiles>
<autoVersionSubmodules>true</autoVersionSubmodules>
<tagNameFormat>documents4j-@{project.version}</tagNameFormat>
</configuration>
</plugin>
<!-- Cobertura test case coverage -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>${version.maven.cobertura-plugin}</version>
<configuration>
<aggregate>true</aggregate>
<formats>
<format>html</format>
<format>xml</format>
</formats>
<check />
</configuration>
</plugin>
<!-- Setup plugin for deployment to Maven Central. -->
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.8</version>
<extensions>true</extensions>
<configuration>
<serverId>central</serverId>
<nexusUrl>https://oss.sonatype.org</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${version.maven.resources-plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>${version.maven.install-plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${version.maven.compiler-plugin}</version>
<inherited>true</inherited>
<configuration>
<source>${version.java}</source>
<target>${version.java}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${version.maven.release-plugin}</version>
<configuration>
<useReleaseProfile>false</useReleaseProfile>
<releaseProfiles>shaded-jar,javadoc,source</releaseProfiles>
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<profile>
<id>source</id>
<build>
<plugins>
<!-- Create source artifacts -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${version.maven.source-plugin}</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>javadoc</id>
<build>
<plugins>
<!-- Create javadoc artifacts -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${version.maven.javadoc-plugin}</version>
<executions>
<execution>
<id>attach-javadoc</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
<execution>
<id>aggregate-javadoc</id>
<goals>
<goal>aggregate</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
<!-- Sign artifacts -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${version.maven.gpg-plugin}</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>checks</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<!-- Check style on build -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${version.maven.checkstyle-plugin}</version>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
<configuration>
<configLocation>checkstyle.xml</configLocation>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>