Skip to content

Publish all modules #107

@kevinwallimann

Description

@kevinwallimann

Currently, the modules driver, ingestor-default and shared and testutils are not published to maven, because their API should not be public and backwards-compatibility within a major version is not guaranteed.
The disadvantage is that the main executable jar is not published on maven. However, the main jar should be available to download without the user having to build it himself.

Both goals can be achieved by publishing all modules to maven central, but making all classes in driver, ingestor-default, shared and testutils package-private to za.co.absa.hyperdrive which effectively marks them as a "private API". Users may download the main jar and execute it as is, but will still be prevented to use the code (unless they create a package with the same name)

Tasks

  • From the mentioned modules, remove the following from the pom files
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>${nexus.staging.plugin.version}</version>
                <configuration>
                    <skipNexusStagingDeployMojo>${skip.internal.modules.deployment}</skipNexusStagingDeployMojo>
                </configuration>
            </plugin>
  • Make all classes in the mentioned modules package private to za.co.absa.hyperdrive

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions