Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Serenity Includes Too Much Stuff that I Don't Need or Want by Default #2320

Closed
nathandelane opened this issue Dec 1, 2020 · 3 comments
Closed

Comments

@nathandelane
Copy link

There is a whole crapload of dependencies in serenity-core that I both don't need and don't want.

Also, it appears that I can't get a project with serenity-core to build with Maven enforcer-plugin and banDuplicateClasses running - it complains about a whole lot of duplicate classes, which I tried to resolve, but when it came to appium vs. selenium that failed.

Instead could you please break all of these extra dependencies out from serenity-core into their own artifacts, or at least make them not transitive into my project.

I want a lightweight serenity-core module that only contains the stuff serenity needs to run tests and provide reporting.

I am using: net.serenity-bdd:serenity-core:2.3.8, as can be seen here.

This is a ton of bloat I don't need in order to use serenity for simple testing - not everybody needs or wants all of this.

[INFO] +- net.serenity-bdd:serenity-core:jar:2.3.8:compile
[INFO] |  +- net.bytebuddy:byte-buddy:jar:1.10.10:compile
[INFO] |  +- net.bytebuddy:byte-buddy-agent:jar:1.10.10:compile
[INFO] |  +- com.google.guava:guava:jar:25.0-jre:compile
[INFO] |  |  +- com.google.code.findbugs:jsr305:jar:1.3.9:compile
[INFO] |  |  +- org.checkerframework:checker-compat-qual:jar:2.0.0:compile
[INFO] |  |  +- com.google.errorprone:error_prone_annotations:jar:2.1.3:compile
[INFO] |  |  +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
[INFO] |  |  \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile
[INFO] |  +- com.google.inject:guice:jar:4.2.2:compile
[INFO] |  |  \- javax.inject:javax.inject:jar:1:compile
[INFO] |  +- org.ow2.asm:asm:jar:8.0.1:compile
[INFO] |  +- commons-codec:commons-codec:jar:1.10:compile
[INFO] |  +- org.objenesis:objenesis:jar:3.1:compile
[INFO] |  +- org.slf4j:slf4j-api:jar:1.7.26:compile
[INFO] |  +- xml-apis:xml-apis:jar:1.4.01:compile
[INFO] |  +- commons-logging:commons-logging:jar:1.2:compile
[INFO] |  +- io.vavr:vavr:jar:0.9.0:compile
[INFO] |  |  \- io.vavr:vavr-match:jar:0.9.0:compile
[INFO] |  +- javax.xml.bind:jaxb-api:jar:2.3.1:compile
[INFO] |  |  \- javax.activation:javax.activation-api:jar:1.2.0:compile
[INFO] |  +- com.sun.xml.bind:jaxb-core:jar:2.3.0.1:compile
[INFO] |  +- org.mockito:mockito-core:jar:3.1.0:compile
[INFO] |  +- net.serenity-bdd:serenity-report-resources:jar:2.3.8:compile
[INFO] |  +- net.serenity-bdd:serenity-model:jar:2.3.8:compile
[INFO] |  |  +- commons-net:commons-net:jar:3.6:compile
[INFO] |  |  +- org.apache.commons:commons-text:jar:1.8:compile
[INFO] |  |  +- org.reflections:reflections:jar:0.9.11:compile
[INFO] |  |  |  \- org.javassist:javassist:jar:3.21.0-GA:compile
[INFO] |  |  \- es.nitaur.markdown:txtmark:jar:0.16:compile
[INFO] |  +- net.serenity-bdd:serenity-reports:jar:2.3.8:compile
[INFO] |  |  +- net.serenity-bdd:serenity-stats:jar:2.3.8:compile
[INFO] |  |  \- org.jetbrains.kotlin:kotlin-stdlib-jdk8:jar:1.4.10:compile
[INFO] |  |     +- org.jetbrains.kotlin:kotlin-stdlib:jar:1.4.10:compile
[INFO] |  |     |  +- org.jetbrains.kotlin:kotlin-stdlib-common:jar:1.4.10:compile
[INFO] |  |     |  \- org.jetbrains:annotations:jar:13.0:compile
[INFO] |  |     \- org.jetbrains.kotlin:kotlin-stdlib-jdk7:jar:1.4.10:compile
[INFO] |  +- com.google.code.gson:gson:jar:2.8.6:compile
[INFO] |  +- commons-io:commons-io:jar:2.6:compile
[INFO] |  +- org.seleniumhq.selenium:selenium-server:jar:3.141.59:compile
[INFO] |  |  +- org.seleniumhq.selenium:selenium-firefox-driver:jar:3.141.59:compile
[INFO] |  |  +- org.seleniumhq.selenium:selenium-ie-driver:jar:3.141.59:compile
[INFO] |  |  +- com.beust:jcommander:jar:1.72:compile
[INFO] |  |  +- org.apache.commons:commons-exec:jar:1.3:compile
[INFO] |  |  +- net.jcip:jcip-annotations:jar:1.0:compile
[INFO] |  |  +- org.seleniumhq.selenium:jetty-repacked:jar:9.4.12.v20180830:compile
[INFO] |  |  +- com.squareup.okhttp3:okhttp:jar:3.11.0:compile
[INFO] |  |  +- com.squareup.okio:okio:jar:1.14.0:compile
[INFO] |  |  +- javax.servlet:javax.servlet-api:jar:3.1.0:compile
[INFO] |  |  \- org.yaml:snakeyaml:jar:1.19:compile
[INFO] |  +- org.seleniumhq.selenium:selenium-java:jar:3.141.59:compile
[INFO] |  +- org.seleniumhq.selenium:selenium-api:jar:3.141.59:compile
[INFO] |  +- org.seleniumhq.selenium:selenium-chrome-driver:jar:3.141.59:compile
[INFO] |  +- org.seleniumhq.selenium:selenium-edge-driver:jar:3.141.59:compile
[INFO] |  +- org.seleniumhq.selenium:selenium-remote-driver:jar:3.141.59:compile
[INFO] |  +- org.seleniumhq.selenium:selenium-safari-driver:jar:3.141.59:compile
[INFO] |  +- org.seleniumhq.selenium:selenium-opera-driver:jar:3.141.59:compile
[INFO] |  +- org.seleniumhq.selenium:selenium-support:jar:3.141.59:compile
[INFO] |  +- com.paulhammant:ngwebdriver:jar:1.1.5:compile
[INFO] |  +- com.assertthat:selenium-shutterbug:jar:0.9.3:compile
[INFO] |  |  +- org.projectlombok:lombok:jar:1.18.8:compile
[INFO] |  |  \- com.github.zafarkhaja:java-semver:jar:0.9.0:compile
[INFO] |  +- com.codeborne:phantomjsdriver:jar:1.4.4:compile
[INFO] |  +- org.seleniumhq.selenium:htmlunit-driver:jar:2.37.0:compile
[INFO] |  +- io.appium:java-client:jar:7.3.0:compile
[INFO] |  |  +- commons-validator:commons-validator:jar:1.6:compile
[INFO] |  |  |  +- commons-beanutils:commons-beanutils:jar:1.9.2:compile
[INFO] |  |  |  \- commons-digester:commons-digester:jar:1.8.1:compile
[INFO] |  |  \- org.aspectj:aspectjweaver:jar:1.9.4:compile
[INFO] |  +- org.springframework:spring-context-support:jar:5.1.2.RELEASE:compile
[INFO] |  |  +- org.springframework:spring-beans:jar:5.1.2.RELEASE:compile
[INFO] |  |  +- org.springframework:spring-context:jar:5.1.2.RELEASE:compile
[INFO] |  |  |  +- org.springframework:spring-aop:jar:5.1.2.RELEASE:compile
[INFO] |  |  |  \- org.springframework:spring-expression:jar:5.1.2.RELEASE:compile
[INFO] |  |  \- org.springframework:spring-core:jar:5.1.2.RELEASE:compile
[INFO] |  +- org.codehaus.groovy:groovy:jar:3.0.5:compile
[INFO] |  +- net.sf.opencsv:opencsv:jar:2.0:compile
[INFO] |  +- joda-time:joda-time:jar:2.7:compile
[INFO] |  +- com.thoughtworks.xstream:xstream:jar:1.4.13:compile
[INFO] |  |  \- xpp3:xpp3_min:jar:1.1.4c:compile
[INFO] |  +- org.apache.commons:commons-lang3:jar:3.8.1:compile
[INFO] |  +- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] |  +- org.freemarker:freemarker:jar:2.3.29:compile
[INFO] |  +- net.sourceforge.jexcelapi:jxl:jar:2.6.12:compile
[INFO] |  +- net.sourceforge.htmlunit:htmlunit:jar:2.37.0:compile
[INFO] |  |  +- net.sourceforge.htmlunit:htmlunit-core-js:jar:2.37.0:compile
[INFO] |  |  +- net.sourceforge.htmlunit:neko-htmlunit:jar:2.37.0:compile
[INFO] |  |  |  \- xerces:xercesImpl:jar:2.12.0:compile
[INFO] |  |  +- net.sourceforge.htmlunit:htmlunit-cssparser:jar:1.5.0:compile
[INFO] |  |  +- org.brotli:dec:jar:0.1.2:compile
[INFO] |  |  \- org.eclipse.jetty.websocket:websocket-client:jar:9.4.26.v20200117:compile
[INFO] |  |     +- org.eclipse.jetty:jetty-client:jar:9.4.26.v20200117:compile
[INFO] |  |     |  \- org.eclipse.jetty:jetty-http:jar:9.4.26.v20200117:compile
[INFO] |  |     +- org.eclipse.jetty:jetty-xml:jar:9.4.26.v20200117:compile
[INFO] |  |     +- org.eclipse.jetty:jetty-util:jar:9.4.26.v20200117:compile
[INFO] |  |     +- org.eclipse.jetty:jetty-io:jar:9.4.26.v20200117:compile
[INFO] |  |     \- org.eclipse.jetty.websocket:websocket-common:jar:9.4.26.v20200117:compile
[INFO] |  |        \- org.eclipse.jetty.websocket:websocket-api:jar:9.4.26.v20200117:compile
[INFO] |  +- org.apache.httpcomponents:httpclient:jar:4.5.5:compile
[INFO] |  |  \- org.apache.httpcomponents:httpcore:jar:4.4.9:compile
[INFO] |  +- org.apache.httpcomponents:httpmime:jar:4.5.5:compile
[INFO] |  +- org.fluentlenium:fluentlenium-core:jar:0.10.2:compile
[INFO] |  +- com.jhlabs:filters:jar:2.0.235:compile
[INFO] |  +- org.asciidoctor:asciidoctorj:jar:1.5.6:compile
[INFO] |  +- org.imgscalr:imgscalr-lib:jar:4.2:compile
[INFO] |  +- javax.el:javax.el-api:jar:2.2.4:compile
[INFO] |  +- org.glassfish.web:javax.el:jar:2.2.4:compile
[INFO] |  +- xalan:xalan:jar:2.7.2:compile
[INFO] |  +- xalan:serializer:jar:2.7.2:compile
[INFO] |  +- org.awaitility:awaitility:jar:4.0.1:compile
[INFO] |  |  \- org.hamcrest:hamcrest:jar:2.1:compile
[INFO] |  +- com.typesafe:config:jar:1.3.1:compile
[INFO] |  +- org.jsoup:jsoup:jar:1.10.3:compile
[INFO] |  +- com.google.jimfs:jimfs:jar:1.1:compile
[INFO] |  +- com.vladsch.flexmark:flexmark-all:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-abbreviation:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-admonition:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-anchorlink:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-aside:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-attributes:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-autolink:jar:0.34.30:compile
[INFO] |  |  |  \- org.nibor.autolink:autolink:jar:0.6.0:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-definition:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-emoji:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-enumerated-reference:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-escaped-character:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-footnotes:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-gfm-issues:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-gfm-strikethrough:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-gfm-tables:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-gfm-tasklist:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-gfm-users:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-gitlab:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-jekyll-front-matter:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-jekyll-tag:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-media-tags:jar:0.34.30:compile
[INFO] |  |  |  \- com.vladsch.flexmark:flexmark-test-util:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-ins:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-xwiki-macros:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-superscript:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-tables:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-toc:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-typographic:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-wikilink:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-yaml-front-matter:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-ext-youtube-embedded:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-formatter:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-html-parser:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-jira-converter:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-pdf-converter:jar:0.34.30:compile
[INFO] |  |  |  +- com.openhtmltopdf:openhtmltopdf-core:jar:0.0.1-RC13:compile
[INFO] |  |  |  +- com.openhtmltopdf:openhtmltopdf-pdfbox:jar:0.0.1-RC13:compile
[INFO] |  |  |  |  +- org.apache.pdfbox:pdfbox:jar:2.0.8:compile
[INFO] |  |  |  |  |  \- org.apache.pdfbox:fontbox:jar:2.0.8:compile
[INFO] |  |  |  |  +- org.apache.pdfbox:xmpbox:jar:2.0.8:compile
[INFO] |  |  |  |  \- de.rototor.pdfbox:graphics2d:jar:0.12:compile
[INFO] |  |  |  +- com.openhtmltopdf:openhtmltopdf-rtl-support:jar:0.0.1-RC13:compile
[INFO] |  |  |  |  \- com.ibm.icu:icu4j:jar:59.1:compile
[INFO] |  |  |  \- com.openhtmltopdf:openhtmltopdf-jsoup-dom-converter:jar:0.0.1-RC13:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-profile-pegdown:jar:0.34.30:compile
[INFO] |  |  +- com.vladsch.flexmark:flexmark-util:jar:0.34.30:compile
[INFO] |  |  \- com.vladsch.flexmark:flexmark-youtrack-converter:jar:0.34.30:compile
[INFO] |  \- io.github.bonigarcia:webdrivermanager:jar:4.2.2:compile
[INFO] |     +- org.apache.httpcomponents.client5:httpclient5:jar:5.0.1:compile
[INFO] |     |  +- org.apache.httpcomponents.core5:httpcore5:jar:5.0.1:compile
[INFO] |     |  \- org.apache.httpcomponents.core5:httpcore5-h2:jar:5.0.1:compile
[INFO] |     \- org.rauschig:jarchivelib:jar:1.1.0:compile
[INFO] |        \- org.apache.commons:commons-compress:jar:1.20:compile
@nathandelane
Copy link
Author

It also appears that this starts to initialize selenium/webdriver components through this enum net.thucydides.core.webdriver.SupportedWebDriver, even though I'm not planning to use it - since that's part of serenity-core I have no way to disable it.

This is a waste of my heap space.

@wakaleo
Copy link
Member

wakaleo commented Dec 1, 2020

This isn't a high priority issue but feel free to propose a PR if you want to exclude some unnecessary transitive dependencies if you can identify them or spilt out module that you don't think are necessary for the core reporting (this is non trivial). It's an open source project, so if it is important to you, chip in and contribute.

@nathandelane
Copy link
Author

Will do - I'll take a stab at it.

@wakaleo wakaleo closed this as completed Feb 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants