-
Notifications
You must be signed in to change notification settings - Fork 2.8k
[ZEPPELIN-1695] Centralize libs, plugin versions in all pom.xml #1668
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
Conversation
a7aed47 to
a5c42ea
Compare
| <dependency> | ||
| <groupId>org.apache.httpcomponents</groupId> | ||
| <artifactId>httpclient</artifactId> | ||
| <version>4.3.6</version> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it safe to remove versions here, without extracting it to the properties, as in other sub-projects?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bzz It's safe since
- we have
dependencyManagementinroot/pom.xmland all dependencies described independencyManagementblock will be inherited and shared by children pom.xml
(ref - https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Management)
<properties>
<httpcomponents.client.version>4.3.6</httpcomponents.client.version>
<dependencyManagement>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpcomponents.client.version}</version>
</dependency>
- You can check using effective pom
$ mvn org.apache.maven.plugins:maven-help-plugin:2.2:effective-pom -pl kylin
// you will see
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.6</version>
</dependency>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
great reminder on how dependency mechanism works in Maven, it would be event enough just to point it's existence in parent pom :)
|
Thank you - it's a great effort, a bit long to review so it took a while and have diverged from master. @1ambda could you rebase and also make sure it does not affect automation like https://github.com/apache/zeppelin/blob/master/dev/change_scala_version.sh ? |
40a1709 to
b724218
Compare
Comment Summary@bzz Thanks for review! I didn't know about There are many ways to compare, but i chose a simple and reproduceable way so that others can do again
As you can see, Long Details (sorry, but it's necessary)below are content of |
|
Thank you for double-checking and explanations. Looks like CI is failing right now though |
|
Failed due to not the related test. I will amend the last commit and trigger CI again |
b724218 to
bc40176
Compare
|
Looks great to me and CI is green now. Merging to master, if there is no further discussion. |
|
@1ambda it looks like rebase is needed after few other |
1f0ba6d to
1527b84
Compare
|
CI failed |
033f0e2 to
2fb4e1c
Compare
|
rebased to keep sync with master (+ to see CI is green as well) |
|
Sounds reasonable. CI is green, merging to master then. |
|
I will resolve conflict with 4ac577f |
|
thanks a lot, @1ambda ! |
2fb4e1c to
1a5419a
Compare
|
Thank you @1ambda ! Merging to master, if there is no further discussion. |
we already specified in the parent pom.xml - 1.5 commons-codec - 4.3.6 httpclient so it's safe to remove their version fields
ffc1982 to
5a9c966
Compare
|
Waiting for CI to finish on https://travis-ci.org/1ambda/zeppelin/ Will merge to master right after that, if there is no further discussion. |
|
2 Scala 2.11 profiles failed on IgniteSQL tests - a flaky test tracked under ZEPPELIN-1738 which is not relevant to the change. |
What is this PR for?
First of all, this PR doesn't affect on runtime application behaivor and existing build processes. Just abstracting variables in pom.xml
The main goal of this PR is bringing consistency and maintainability in all pom.xml. I referred these 2 projects.
Currently, all libraries and plugins have duplicated version fields since we are not using
dependencyManagement,pluginManagementefficiently in pom.xmlThis results in
These are some examples
// hard coded, non consistent version management <dependency> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId> <version>${libthrift.version}</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.3.3</version> </dependency>// a/pom.xml <plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>1.3.1</version> <plugin> <artifactId>maven-dependency-plugin</artifactId> <version>2.8</version> // b/pom.xml <plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>1.3.1</version> <plugin> <artifactId>maven-dependency-plugin</artifactId> <version>2.8</version> // c/pom.xml <plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>1.3.1</version> <plugin> <artifactId>maven-dependency-plugin</artifactId> <version>2.8</version>What type of PR is it?
[Refactoring]
Todos
What is the Jira issue?
ZEPPELIN-1695
How should this be tested?
Since this PR doesn't affect runtime behavior at all, CI test would be enough.
Questions: