-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Migrate from Maven to Gradle for building. #1533
Conversation
d756610
to
7cd77f9
Compare
22eb699
to
702a92d
Compare
README.md missing change? |
b300ca1
to
80aba73
Compare
Good catch! Amended, and rebased. |
c56b3b1
to
80178a7
Compare
d2e7740
to
eada969
Compare
eada969
to
51d2199
Compare
51d2199
to
7e905dd
Compare
I'll skip the signing/uploading part. I think this in fact shouldn't be part of the build process. |
7e905dd
to
aaa5262
Compare
Merged! |
I'm rebasing a PR and I'm using protoc version 3.5.1. Build is success, but the generated classes are using new protobuf classes with suffix V3, e.g. Thank you so much |
Maybe we should exclude the generated protobuf files from version control? |
I think yes, since the build generates fresh ones. |
This targets Gradle 3.2.1, as this is the version that will be in the upcoming Ubuntu 18.04 LTS.
You can use:
gradle clean
gradle generateProto
gradle build
gradle install
Currently, the protobuf classes are generated on each build. I hope this will not cause unwanted changes in these classes due to differences in protobuf libraries. If it turns out problematic, maybe in future we should not put generated classes into git.
Dependency pinning (to certain hashes) is gone for now. I doubt this will add much security if the feature isn't built into gradle itself. As long as it's a plugin, there is the trust bootstrapping problem.
Bundled jars are currently gone. If someone still needs them, please submit a PR for building them again. The Windows versions of the tool launcher scripts (e.g. wallet-tool.cmd) are gone, because I have no Windows to test with. If you have Windows, feel free to help here.
Because Gradle has no optional dependencies, there is now a dependency on
org.fusesource.leveldbjni:leveldbjni-all:1.8
that you likely want to manually exclude from your build.