Migrate from ant to gradle #489
Open
opened 2025-04-21 15:11:35 -04:00 by idk
·
4 comments
No Branch/Tag Specified
master
i2p-2.9.0
i2p-2.8.2-10-rc
i2p-2.8.2-9-rc
i2p-2.8.2-8
i2p-2.8.2-7
i2p-2.8.2-6
i2p-2.8.2-5
i2p-2.8.2-4
i2p-2.8.2-3
i2p-2.8.2-2
i2p-2.8.2-1
i2p-2.8.2
i2p-2.8.1-2-rc
2.8.1-2-rc
i2p-2.8.1-1-rc
i2p-release-2.8.1
i2p-2.8.0-8-rc
i2p-2.8.0-7-rc
i2p-2.8.0-6-rc
i2p-2.8.0-5
i2p-2.8.0-4
i2p-2.8.0-3
i2p-2.8.0-2
i2p-windows-2.8.0
i2p-2.8.0-1
i2p-2.8.1
i2p-2.8.0
i2p-2.7.0-9-rc
i2p-2.7.0-8-rc
i2p-2.7.0-7-rc
i2p-2.7.0-6-rc
i2p-2.7.0-5-rc
i2p-2.7.0-4
i2p-2.7.0-3
i2p-2.7.0-2
i2p-2.7.0-1
i2p-2.7.0
i2p-2.6.1-4-rc
i2p-2.6.1-3
i2p-2.6.1-2
i2p-2.6.1-1
i2p-2.6.1
i2p-2.6.0-2-rc
i2p-2.6.0-1
i2p-2.6.1-cssfix
i2p-2.6.0
i2p-2.5.2-8-rc
i2p-2.5.2-7-rc
i2p-2.5.2-6
i2p-2.5.2-0
i2p-2.5.2-5
i2p-2.5.2-4
i2p-2.5.2-3
i2p-2.5.2-2
i2p-2.5.2-1
i2p-2.5.2
i2p-2.5.1-2-rc
i2p-2.5.1-1
i2p-2.5.1
i2p-2.5.1-0
i2p-2.5.0-4
i2p-2.5.0-3
i2p-2.5.0-2
i2p-2.5.0-1
i2p-2.5.0
i2p-2.5.0-0
i2p-2.4.0-10rc
i2p-2.4.0-4
i2p-2.4.03
i2p-2.4.0
i2p-2.3.0-14--rc
i2p-2.3.0--rc
i2p-2.3.0-14-rc
i2p-2.3.0-13
i2p-2.3.0-12
i2p-2.3.0
i2p-2.2.1
i2p-maven-2.2.0
i2p-2.2.0
i2p-2.1.0
i2p-2.0.0
i2p-jpackage-1.9.4
i2p-jpackage-1.9.1
i2p-android-1.9.0
i2p-1.9.0
i2p-android-1.8.2
i2p-android-1.8.1
i2p-1.8.0
i2p-jpackage-1.7.1
i2p-1.7.0
i2p-jpackage-1.6.1
i2p-1.6.1
i2p-1.6.0
i2p-jpackage-1.5.1
i2p-1.5.0
i2p-0.9.50
i2p-0.9.49
i2p-0.9.48
i2p-0.9.47
i2p-0.9.46
i2p-0.9.45
i2p-0.9.44
i2p-0.9.43
i2p-0.9.42
i2p-0.9.41
i2p-0.9.40
i2p-0.9.39
i2p-0.9.38
i2p-0.9.37
i2p-0.9.36
i2p-0.9.35
i2p-0.9.34
i2p-0.9.33
i2p-0.9.32
i2p-0.9.31
i2p-0.9.30
i2p-0.9.29-win1
i2p-0.9.29
i2p-0.9.28
i2p-0.9.27
i2p-0.9.26
i2p-0.9.25
i2p-0.9.24
i2p-0.9.23
i2p-0.9.22
i2p-0.9.21
i2p-0.9.20
i2p-0.9.19
i2p-0.9.18
i2p-0.9.17
i2p-0.9.16
i2p-0.9.15
i2p-0.9.14.1
i2p-0.9.14
i2p-0.9.13
i2p-0.9.12
i2p-0.9.11
i2p-0.9.10
i2p-0.9.9
i2p-0.9.8.1
i2p-0.9.8
i2p-0.9.7.1
i2p-0.9.7
i2p-0.9.6
i2p-0.9.5-win1
i2p-0.9.5
i2p-0.9.4
i2p-0.9.3
i2p-0.9.2
i2p-0.9.1
i2p-0.9
i2p-0.8.13
i2p-0.8.12
i2p-0.8.11
i2p-0.8.10
i2p-0.8.9
i2p-0.8.8
i2p-0.8.7
i2p-0.8.6
i2p-0.8.5
i2p-0.8.4
i2p-0.8.3
i2p-0.8.2
i2p-0.8.1
i2p-0.8
i2p-0.7.14
i2p-0.7.13
i2p-0.7.12
i2p-0.7.11
i2p-0.7.10
i2p-0.7.9
i2p-0.7.8
i2p-0.7.7
i2p-0.7.6
i2p-0.7.5
i2p-0.7.4
i2p-0.7.3
i2p-0.7.2
i2p-0.7.1
i2p-0.7
i2p-0.6.5
i2p-0.6.4
i2p-0.6.3
i2p-0.6.2
i2p-0.6.1.33
i2p-0.6.1.32
i2p-0.6.1.31
0.6.1.30-20
0.6.1.30-20-cvs-suck-import
i2p_0_6_1_30
i2p_0_6_1_29
i2p_0_6_1_28
i2p_0_6_1_27
i2p_0_6_1_26
i2p_0_6_1_25
i2p_0_6_1_24
i2p_0_6_1_23
i2p_0_6_1_22
i2p_0_6_1_21
i2p_0_6_1_20
i2p_0_6_1_19
i2p_0_6_1_18
i2p_0_6_1_17
i2p_0_6_1_16
i2p_0_6_1_15
i2p_0_6_1_14
i2p_0_6_1_13
i2p_0_6_1_12
i2p_0_6_1_11
i2p_0_6_1_10
i2p_0_6_1_9
i2p_0_6_1_8
i2p_0_6_1_7
i2p_0_6_1_6
i2p_0_6_1_5
i2p_0_6_1_4
i2p_0_6_1_3
i2p_0_6_1_2
i2p_0_6_1_1
i2p_0_6_1
i2p_0_6_0_6
i2p_0_6_0_5
i2p_0_6_0_4
i2p_0_6_0_3
i2p_0_6_0_2
i2p_0_6_0_1
i2p_0_6
i2p_0_5_0_7
i2p_0_5_0_6
i2p_0_5_0_5
i2p_0_5_0_4
i2p_0_5_0_3
i2p_0_5_0_2
i2p_0_5_0_1
i2p_0_5
i2p_0_5_post_merge
i2p_0_4_2_6
i2p_0_4_2_5
i2p_0_4_2_4
i2p_0_4_2_3
i2p_0_4_2_2
i2p_0_4_2_1
i2p_0_4_2
i2p_0_4_1_4
i2p_0_4_1_3
i2p_0_4_1_2
i2p_0_4_1_1
i2p_0_4_1
i2p_0_4_0_1
i2p_0_4
i2p_0_3_4_3
i2p_0_3_4_2
i2p_0_3_4_1
i2p_0_3_4
i2p_0_3_3
i2p_0_3_2_3
i2p_0_3_2_2
i2p_0_3_2_1
i2p_0_3_2
i2p_0_3_1_5
i2p_0_3_1_4
i2p_0_3_1_3
i2p_0_3_1_2
i2p_0_3_1_1
i2p_0_3_1
i2p_0_3_0_4
i2p_post_great_renaming
i2p_0_3_0_3
Labels
Clear labels
#1026
#1031
#1033
#1036
#1040
#1049
#1051
#1065
#1067
#1076
#1105
#1112
#1139
#1166
#1170
#1172
#1176
#1200
#1222
#1223
#1259
#1263
#1274
#1289
#1302
#1304
#1306
#1308
#1320
#1337
#1338
#1372
#1381
#1384
#1393
#1399
#1410
#1415
#1418
#1438
#1453
#1460
#1479
#1491
#1499
#1519
#1522
#1560
#1564
#1584
#1609
#1613
#1637
#1655
#1657
#1684
#1685
#1689
#1694
#1697
#1716
#1724
#1740
#1742
#1753
#1758
#1766
#1767
#1775
#1802
#1805
#1834
#1837
#1838
#1847
#1848
#1869
#1877
#1893
#1907
#1911
#1915
#1928
#1938
#1951
#1979
#1981
#1982
#1985
#1990
#1999
#2018
#2023
#2024
#2035
#2039
#2056
#2080
#2081
#2083
#2085
#2086
#2088
#2090
#2099
#2100
#2101
#2102
#2106
#2110
#2112
#2114
#2121
#2142
#2145
#2146
#2147
#2149
#2158
#2160
#2162
#2169
#2173
#2177
#2182
#2193
#2212
#2221
#2230
#2231
#2233
#2238
#2240
#2241
#2244
#2251
#2252
#2255
#2257
#2259
#2261
#2263
#2264
#2265
#2269
#2271
#2274
#2275
#2278
#2281
#2297
#23
#2302
#2303
#2304
#2305
#2306
#2309
#2319
#2323
#2324
#2325
#2336
#2337
#2340
#2341
#2346
#2350
#2363
#2371
#2374
#2375
#2376
#2381
#2386
#2393
#2396
#2402
#2411
#2420
#2421
#2426
#2428
#2429
#2431
#2433
#2434
#2446
#2459
#2467
#2472
#2475
#2496
#2497
#2506
#2509
#2512
#2540
#2562
#2572
#2608
#2609
#2613
#2619
#2620
#2625
#2640
#2641
#2642
#2643
#2646
#2647
#2650
#2653
#2655
#2656
#2658
#2660
#2664
#2670
#2672
#2675
#2680
#2681
#2682
#2689
#2690
#2691
#2695
#2700
#2701
#2703
#2704
#2705
#2707
#2711
#2721
#2729
#2730
#2733
#2734
#2735
#2736
#2737
#2738
#2750
#2751
#2754
#2763
#2764
#2766
#2771
#2772
#2773
#2774
#2775
#2780
#2782
#2792
#2793
#2795
#2796
#2799
#2801
#2802
#2803
#2805
#2807
#371
#374
#375
#376
#377
#378
#380
#381
#383
#384
#385
#386
#392
#44
#532
#629
#662
#666
#689
#691
#698
#699
#719
#725
#730
#731
#738
#745
#752
#774
#816
#818
#82
#829
#847
#857
#888
#933
#961
#971
#977
#981
0.9.18
0.9.20
0.9.21
0.9.23
0.9.24
0.9.25
0.9.27
0.9.28
0.9.29
0.9.30
0.9.31
0.9.32
0.9.33
0.9.35
0.9.36
0.9.37
0.9.38
0.9.39
0.9.42
0.9.43
0.9.45
0.9.46
0.9.47
0.9.48
0.9.49
0.9.50
0.9.9
BOB
I2CP
SAM
addressbook
api
apps
blocker
build
console
critical
crypto
data
debian
defect
docker
duplicate
easy-install bundle
enhancement
eventually
general
i2psnark
i2ptunnel
infrastructure
installer
jetty
maintenance
major
minor
misc
naming
netdb
not a bug
not our bug
package
profiles
research
router
soon
streaming
susidns
susimail
systray
task
tests
transport
trivial
tunnels
unconfirmed
undecided
update
utils
website
wontfix
works-for-me
wrapper
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: I2P_Developers/i2p.i2p#489
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
ant
requires system dependent libraries to be installed and doesn't handle dependencies. That leads to a system-dependent building process whichgradle
does away with.Since most of the project build is done in ant, this should be quite the undertaking and might require milestones. I'll try and define a roadmap of how best to do this. Input is very welcome of course as I'm only getting back into Java and missed the introduction of Gradle completely.
These are all the ant targets (
ant -p
) and their migration statusDefault target: all
How are dependencies retrieved for debian builds?
To make it even more explicit: Debian policy prohibits downloads in the build process, period.
The title of the MR assumes that we have a goal to replace ant with gradle. We do not. Gradle was half-assed by str4d years ago for unknown reasons, then brought back to life by zab recently so his IDE would work. I did a number of fixups to get it closer.
See http://zzz.i2p/topics/3034 post 2 for some reasons why ant's not going away.
plus, gradle is terrible for anonymity since it's yanking everything over the internet.
Many of the ant targets in the list above are interim i.e. they will not have 1:1 mapping with Gradle targets or more accurately the built-in targets that Gradle provides take care of their functionality.
Currently, the Gradle build systems is complete to the degree that it compiles the code and allows it to be imported in an IDE (IntelliJ and Eclipse confirmed working). @zzz did some work after that to make sure the jars built by Gradle match the jars built by Ant.
Of the top of my head, the main remaining pieces of functionality are:
There are complications related to each of those tasks:
IzPack: there is support for using IzPack 4 and 5. The jars for 4 are checked into the code, but jars for 5 are not. I have no idea if IzPack is available in MavenCentral or how best to integrate them into a standard Gradle pipeline
Pre-compiling JSPs: doable, see the MuWire
webui
subprojectGettext: same as above. You may need to resort to calling the
gettext
executable from the Gradle script.Signing updaters: that is doable but requires some trickery with the
buildscript
classpath. See the MuWireplug
subproject for ideas.Debian: never built it myself, the only thing I can say is that it is a reproducible build and that may complicate things. You will probably need to resort to using some Gradle plugin.
Standalone I2PSnark: nothing I can say here, but since this is a separate "product" it can stay on Ant I think.