[
https://issues.apache.org/jira/browse/SOLR-16157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17526471#comment-17526471
]
ASF subversion and git services commented on SOLR-16157:
--------------------------------------------------------
Commit 63902150d5c0d7483551abf28e26b0105cbc1920 in solr's branch
refs/heads/main from Houston Putman
[ https://gitbox.apache.org/repos/asf?p=solr.git;h=63902150d5c ]
SOLR-16157, SOLR-16117: Fix maven release artifacts (#808)
- Auto-find modules to build maven artifacts and distribution for
- Shared dependencies between solr-core and solr-server no longer need
special dependency types, except for Jetty client libraries. This
worked earlier because of SolrJ, and was not guaranteed to keep
working.
- Remove the solr-server maven artifact.
> Improve jar de-duplication between server/lib(/ext) and WEB-INF/lib
> -------------------------------------------------------------------
>
> Key: SOLR-16157
> URL: https://issues.apache.org/jira/browse/SOLR-16157
> Project: Solr
> Issue Type: Improvement
> Security Level: Public(Default Security Level. Issues are Public)
> Components: Build, Gradle, Server
> Affects Versions: 9.0
> Reporter: Houston Putman
> Assignee: Houston Putman
> Priority: Blocker
> Fix For: 9.0
>
> Time Spent: 1h
> Remaining Estimate: 0h
>
> Currently the jars in the binary release's {{server/lib}}, {{server/lib/ext}}
> and {{WEB-INF/lib}} directories are manually de-duplicated, and it's very
> fragile and only works because of transitive dependencies in SolrJ.
> One example of this is done in SOLR-16072.
> Since we have the full-power of Gradle, we should be able to automate this.
> I tried to do a first-pass where all shared-libs between the server and
> web-app are put into {{server/lib/ext}}, and removed from {{server/lib}} and
> {{WEB-INF/lib}}. The problem with this approach is that Jetty does not allow
> webapps to access the Jetty libraries. Therefore this approach didn't buy
> much since we would have to write exceptions for most of the shared
> libraries, since they are jetty server libraries.
> I settled on something closer to the current approach. Two configurations in
> {{server/build.gradle}}, {{serverLib}} and {{libExt}}. in
> {{core/build.gradle}} there is an additional configuration
> {{jettyClientImplementation}}, which {{implementation}} inherits from. Both
> sets libraries are removed from {{WEB-INF/lib}} when it is built, but
> because of the jetty library limitation, {{jettyClientImplementation}}
> libraries are added back in. This is why they are specified separately in
> {{core/build.gradle}}.
> Therefore the only time a developer has to think about shared dependencies is
> when adding a client-jetty-library to Solr Core.
> Note: This is somewhat complicated by the fact that solr-core has Jetty
> Server libraries though it is never used during runtime. They are there just
> because the embedded Solr Server lives in solr-core. We should split this out
> into another package, solr-embedded so that the dependencies make more sense.
> Will create a separate issue for this.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]