[jira] [Updated] (LUCENE-5217) disable transitive dependencies in maven config
[ https://issues.apache.org/jira/browse/LUCENE-5217?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Steve Rowe updated LUCENE-5217: --- Fix Version/s: 5.0 4.6 > disable transitive dependencies in maven config > --- > > Key: LUCENE-5217 > URL: https://issues.apache.org/jira/browse/LUCENE-5217 > Project: Lucene - Core > Issue Type: Bug >Reporter: Robert Muir >Assignee: Steve Rowe > Fix For: 4.6, 5.0 > > Attachments: LUCENE-5217.patch, LUCENE-5217.patch, LUCENE-5217.patch, > LUCENE-5217.patch > > > Our ivy configuration does this: each dependency is specified and so we know > what will happen. Unfortunately the maven setup is not configured the same > way. > Instead the maven setup is configured to download the internet: and it > excludes certain things specifically. > This is really hard to configure and maintain: we added a > 'validate-maven-dependencies' that tries to fail on any extra jars, but all > it really does is run a license check after maven "runs". It wouldnt find > unnecessary dependencies being dragged in if something else in lucene was > using them and thus they had a license file. > Since maven supports wildcard exclusions: MNG-3832, we can disable this > transitive shit completely. > We should do this, so its configuration is the exact parallel of ivy. -- This message was sent by Atlassian JIRA (v6.1#6144) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Updated] (LUCENE-5217) disable transitive dependencies in maven config
[ https://issues.apache.org/jira/browse/LUCENE-5217?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Steve Rowe updated LUCENE-5217: --- Attachment: LUCENE-5217.patch A last minute change before posting the previous version of the patch, to fix a problem turned up by {{validate-maven-dependencies}} - {{jetty-start}} was depended on and doesn't have a checksum in {{solr/licences/}} - broke other stuff. That's fixed in this version of the patch. > disable transitive dependencies in maven config > --- > > Key: LUCENE-5217 > URL: https://issues.apache.org/jira/browse/LUCENE-5217 > Project: Lucene - Core > Issue Type: Bug >Reporter: Robert Muir >Assignee: Steve Rowe > Attachments: LUCENE-5217.patch, LUCENE-5217.patch, LUCENE-5217.patch, > LUCENE-5217.patch > > > Our ivy configuration does this: each dependency is specified and so we know > what will happen. Unfortunately the maven setup is not configured the same > way. > Instead the maven setup is configured to download the internet: and it > excludes certain things specifically. > This is really hard to configure and maintain: we added a > 'validate-maven-dependencies' that tries to fail on any extra jars, but all > it really does is run a license check after maven "runs". It wouldnt find > unnecessary dependencies being dragged in if something else in lucene was > using them and thus they had a license file. > Since maven supports wildcard exclusions: MNG-3832, we can disable this > transitive shit completely. > We should do this, so its configuration is the exact parallel of ivy. -- This message was sent by Atlassian JIRA (v6.1#6144) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Updated] (LUCENE-5217) disable transitive dependencies in maven config
[ https://issues.apache.org/jira/browse/LUCENE-5217?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Steve Rowe updated LUCENE-5217: --- Attachment: LUCENE-5217.patch Patch, hopefully complete. In addition to all tests passing in the Maven build after {{ant get-maven-poms}}, {{generate-maven-artifacts}}and {{precommit}} all pass. I'm running {{ant validate-maven-dependencies}} {{ant nightly-smoke}} now, and if no problems surface, I'll commit to trunk. I plan on letting it soak for a few days before backporting to branch_4x. > disable transitive dependencies in maven config > --- > > Key: LUCENE-5217 > URL: https://issues.apache.org/jira/browse/LUCENE-5217 > Project: Lucene - Core > Issue Type: Bug >Reporter: Robert Muir > Attachments: LUCENE-5217.patch, LUCENE-5217.patch, LUCENE-5217.patch > > > Our ivy configuration does this: each dependency is specified and so we know > what will happen. Unfortunately the maven setup is not configured the same > way. > Instead the maven setup is configured to download the internet: and it > excludes certain things specifically. > This is really hard to configure and maintain: we added a > 'validate-maven-dependencies' that tries to fail on any extra jars, but all > it really does is run a license check after maven "runs". It wouldnt find > unnecessary dependencies being dragged in if something else in lucene was > using them and thus they had a license file. > Since maven supports wildcard exclusions: MNG-3832, we can disable this > transitive shit completely. > We should do this, so its configuration is the exact parallel of ivy. -- This message was sent by Atlassian JIRA (v6.1#6144) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Updated] (LUCENE-5217) disable transitive dependencies in maven config
[ https://issues.apache.org/jira/browse/LUCENE-5217?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Steve Rowe updated LUCENE-5217: --- Attachment: LUCENE-5217.patch New patch, almost there. Changes: * {{ivy.xml}} files and {{ivy-.xml}} files from the Ivy cache are now parsed with DOM+XPath instead of SAX. * All tests pass under the maven build using the filtered POMs. * More javadocs added. * The filtered grandparent POM is now over 5,000 lines long (previously about 900 lines), since, faithful to the Ant build, each Solr module depends on all Solr core, solrj, and example dependencies, and each one of those has to be excluded to thwart transitive dependency resolution. Blech. Left to do: verify that {{generate-maven-artifacts}} works - I haven't tried it yet. > disable transitive dependencies in maven config > --- > > Key: LUCENE-5217 > URL: https://issues.apache.org/jira/browse/LUCENE-5217 > Project: Lucene - Core > Issue Type: Bug >Reporter: Robert Muir > Attachments: LUCENE-5217.patch, LUCENE-5217.patch > > > Our ivy configuration does this: each dependency is specified and so we know > what will happen. Unfortunately the maven setup is not configured the same > way. > Instead the maven setup is configured to download the internet: and it > excludes certain things specifically. > This is really hard to configure and maintain: we added a > 'validate-maven-dependencies' that tries to fail on any extra jars, but all > it really does is run a license check after maven "runs". It wouldnt find > unnecessary dependencies being dragged in if something else in lucene was > using them and thus they had a license file. > Since maven supports wildcard exclusions: MNG-3832, we can disable this > transitive shit completely. > We should do this, so its configuration is the exact parallel of ivy. -- This message was sent by Atlassian JIRA (v6.1#6144) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Updated] (LUCENE-5217) disable transitive dependencies in maven config
[ https://issues.apache.org/jira/browse/LUCENE-5217?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Steve Rowe updated LUCENE-5217: --- Attachment: LUCENE-5217.patch Patch that templatizes dependencies in all POM templates, and fills them out using a new Ant task. In the {{}} section in the grandparent POM produced using this patch, all dependencies' versions are specified, as are exclusions for all transitive compile-scope dependencies. So this patch directly makes the Maven setup the same as the Ant setup: all transitive dependencies are excluded, and all dependencies and their versions are pulled from the Ant/Ivy config. This is a work in progress: I've only tested the {{get-maven-poms}} task so far, and I haven't yet run the Maven build or tried to {{generate-maven-artifacts}}, so it's not ready yet. I think it's most of the way there though. The strategy is to put all modules' {{classpath}}-s and {{test.classpath}}-s into a single properties file using vanilla Ant, and then feed that into a new custom Ant task that also reads all the {{ivy.xml}} files, the centralized ivy versions file, and the external dependencies' {{ivy.xml}} files in the Ivy cache, then output a filters file that is used when copy'ing the POM templates to {{maven-build/}}, so that the appropriate spots are filled in with the right stuff. It's kludgy, in that properties files are used to communicate some information, rather than directly, but I can't see a way to do it all in memory. Don't be scared by the size of the patch: the majority is just removing the hard-coded dependencies in the POM templates. > disable transitive dependencies in maven config > --- > > Key: LUCENE-5217 > URL: https://issues.apache.org/jira/browse/LUCENE-5217 > Project: Lucene - Core > Issue Type: Bug >Reporter: Robert Muir > Attachments: LUCENE-5217.patch > > > Our ivy configuration does this: each dependency is specified and so we know > what will happen. Unfortunately the maven setup is not configured the same > way. > Instead the maven setup is configured to download the internet: and it > excludes certain things specifically. > This is really hard to configure and maintain: we added a > 'validate-maven-dependencies' that tries to fail on any extra jars, but all > it really does is run a license check after maven "runs". It wouldnt find > unnecessary dependencies being dragged in if something else in lucene was > using them and thus they had a license file. > Since maven supports wildcard exclusions: MNG-3832, we can disable this > transitive shit completely. > We should do this, so its configuration is the exact parallel of ivy. -- This message was sent by Atlassian JIRA (v6.1#6144) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org