-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Gradle dependency refactor #5561
Comments
Great, it looks good to me. |
This means to change some dependencies version in the modules, and the difference of the different dependencies shall be listed. |
Good idea, The relationship of dependencies will be much clearer and simpler. |
Yes, I will sort it out and post it later |
Good idea, this will make the dependencies between projects clearer. |
Implementation:
Since there are many dependencies on adjustments, here will not list them one by one. TestTo ensure the safety of refactoring, the following checks need to be performed
|
Dependency tree consistency checkGenerate dependency trees for the framework of the develop branch and the refactor branch respectively.
compare
output
The results show that there are version differences between the two branches, but the differences are all upgrades from the lower version to the higher version. I think these are not problems, but 100% sure. I don't know if there are other better ideas to compare the dependencies of the final packaged jars of the two branches. Can anyone have some other suggestions? @forfreeday @halibobo1205 @lurais BTW, could you help me with the security check? @forfreeday |
I can help you verify the security of the dependency |
In order to compare the dependencies of the final jars, jdeps command shall be used . |
The I compared the above dependency difference with the |
Rationale
The java-tron code has been refactored once and is currently divided into multiple modules:
actuator
: transaction modulechainbase
: DB modulecommon
: common base moduleconsensus
: consensus modulecrypto
: encryption moduleframework
: architectural organizationprotocol
: definition of core protocol data structure and APIplugins
: toolsetEach module has its own dependencies, but currently there are situations where multiple modules reference the same dependency at the same time, which means the same dependency is declared multiple times in multiple
build.gradle
files.For example:
Most of all the modules contain this dependency:
compile group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.69'
. Some dependencies in different modules even don't adopt the same version which makes it more chaotic.There are some drawbacks to this situation:
Fullnode.jar
referencesTherefore, this issue aims to solve the problem of dependency confusion and manage dependencies in a unified manner.
Implementation
The text was updated successfully, but these errors were encountered: