lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (SOLR-13452) Update the lucene-solr build from Ivy+Ant+Maven (shadow build) to Gradle.
Date Wed, 15 May 2019 22:24:00 GMT

    [ https://issues.apache.org/jira/browse/SOLR-13452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16840817#comment-16840817
] 

Uwe Schindler edited comment on SOLR-13452 at 5/15/19 10:23 PM:
----------------------------------------------------------------

Hi Mark,

I am working on forbidden-apis but there are few additional problems:

(1) First you added an {{include 'build/src'}} in settings.gradle, although this is not needed.
The result of this is that the buildSrc dir is treated as a separate subproject, so all the
configurations are applied to it, too. This should not be done. I removed it, project still
compiles. If you keep the include, you break the build plugin because it uses itsself to build
itsself. This fails e.g., forbiddenapis. On the other hand, it might be good to run "rat"
on it. But this should be configured in buildSrc directly.

Another option is to give the build source a separate name and exclude it from the top-level
config inside "subprojects" config. This is how Elasticsearch does it.

(2) There is a problem with the "compileOnly" dependency in solr-core. As it's compile only
its also not exported to projects relying on it. As forbiddenapis hardcodes it as a signatures
file, it wont work. You already excluded solrj, but it also affect other Solr modules that
does not have it. IMHO, I'd change the configuration to only exclude servlet-api.txt sgnatures
if the servlet-api compileOnly dependency is there.

(3) commons-io is missing. We need some trick to get the version number, but that's also easy:
(like in 2, ask the configuration for the version).

(4) System.out checking is also missing

I fixed (1) locally and working on (2). Once this works, I will look into the test excldudes
for the forked Hadoop test classes. That should be easy (just change the forbiddenApisTest
task in the Solr Core module and exclude directories).


was (Author: thetaphi):
Hi Mark,

I am working on forbidden-apis but there are 2 additional problems:

(1) First you added an {{include 'build/src'}} in settings.gradle, although this is not needed.
The result of this is that the buildSrc dir is treated as a separate subproject, so all the
configurations are applied to it, too. This should not be done. I removed it, project still
compiles. If you keep the include, you break the build plugin because it uses itsself to build
itsself. This fails e.g., forbiddenapis. On the other hand, it might be good to run "rat"
on it. But this should be configured in buildSrc directly.

Another option is to give the build source a separate name and exclude it from the top-level
config inside "subprojects" config. This is how Elasticsearch does it.

(2) There is a problem with the "compileOnly" dependency in solr-core. As it's compile only
its also not exported to projects relying on it. As forbiddenapis hardcodes it as a signatures
file, it wont work. You already excluded solrj, but it also affect other Solr modules that
does not have it. IMHO, I'd change the configuration to only exclude servlet-api.txt sgnatures
if the servlet-api compileOnly dependency is there.

(3) commons-io is missing. We need some trick to get the version number, but that's also easy:
(like in 2, ask the configuration for the version).

I fixed (1) locally and working on (2). Once this works, I will look into the test excldudes
for the forked Hadoop test classes. That should be easy (just change the forbiddenApisTest
task in the Solr Core module and exclude directories).

> Update the lucene-solr build from Ivy+Ant+Maven (shadow build) to Gradle.
> -------------------------------------------------------------------------
>
>                 Key: SOLR-13452
>                 URL: https://issues.apache.org/jira/browse/SOLR-13452
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: Build
>            Reporter: Mark Miller
>            Priority: Major
>
> I took some things from the great work that Dat did in [https://github.com/apache/lucene-solr/tree/jira/gradle]
and took the ball a little further.
>  
> When working with gradle in sub modules directly, I recommend [https://github.com/dougborg/gdub]
> This gradle branch uses the following plugin for version locking, version configuration
and version consistency across modules: [https://github.com/palantir/gradle-consistent-versions]
> By default, dependencies are not transitive, but there is a special Configuration for
adding dependencies on other project internal modules that are transitive to their direct
external dependencies (their jar libs).
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message