Skip to content

Commit ad9d7a6

Browse files
committed
Add more java compile recipes to README.md
1 parent 8e985b8 commit ad9d7a6

File tree

1 file changed

+113
-4
lines changed

1 file changed

+113
-4
lines changed

README.md

Lines changed: 113 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,132 @@
11
# Gridsuite Aggregator
22

3-
Inital clone
3+
## Inital clone
44
```
55
$ git clone --recurse-submodules --remote-submodules --jobs 8 https://github.com/gridsuite/aggregator
66
$ git submodule foreach --recursive 'git checkout main'
77
```
88

9-
Update all
9+
## Update all
1010
```
1111
# --rebase or --merge as you wish
1212
$ git submodule update --remote --recursive --rebase --jobs 8
1313
```
1414

15-
Quick backend maven compile with changes in a few libs (example):
15+
## Java Compile
16+
### Partial recompile
17+
Setting a version property matching the current source code version of an
18+
artifact causes it to be recompiled as part of the build. This is an
19+
easy way to change code in libs and see consequences in dependent projects (e.g. servers). For example:
1620
```
17-
$ mvn compile -DskipTests -pl servers/study-server/ -am -Dpowsybl-ws-commons.version=1.6.0-SNAPSHOT
21+
$ cd backend
22+
$ mvn package -pl servers/study-server -am -Dpowsybl-ws-commons.version=1.6.0-SNAPSHOT
1823
[INFO] ------------------------------------------------------------------------
1924
[INFO] Reactor Build Order:
2025
[INFO]
2126
[INFO] powsybl ws commons [jar]
2227
[INFO] Study Server [jar]
2328
```
29+
30+
### Full java recompile for one project and dependencies
31+
A full java recompile for all dependent libs for one project can be done like this (adapt version numbers to match current versions in source poms)
32+
```
33+
$ cd backend
34+
$ mvn package -pl servers/study-server -am \
35+
-Dpowsybl-ws-commons.version=1.6.0-SNAPSHOT \
36+
-Dpowsybl-ws-dependencies.version=2.4.0-SNAPSHOT \
37+
-Dpowsybl-core.version=6.0.0-SNAPSHOT \
38+
-Dorg.gridsuite.dependencies=26-SNAPSHOT \
39+
-Dpowsybl-dependencies.version=2023.3.0-SNAPSHOT \
40+
-Dpowsybl-open-loadflow.version=1.3.0-SNAPSHOT \
41+
-Dpowsybl-diagram.version=4.0.0-SNAPSHOT \
42+
-Dpowsybl-dynawo.version=1.15.0-SNAPSHOT \
43+
-Dpowsybl-entsoe.version=2.6.0-SNAPSHOT \
44+
-Dpowsybl-case-datasource-client.version=1.3.0-SNAPSHOT \
45+
-Dpowsybl-network-store-client.version=1.4.0-SNAPSHOT \
46+
-Dpowsybl-open-reac.version=0.3.0-SNAPSHOT
47+
[INFO] ------------------------------------------------------------------------
48+
[INFO] Reactor Build Order:
49+
[INFO]
50+
[INFO] powsybl [pom]
51+
[INFO] Commons test [jar]
52+
[INFO] Commons [jar]
53+
[INFO] powsybl ws commons [jar]
54+
[INFO] Config Classic [jar]
55+
[INFO] Config Test [jar]
56+
[INFO] Triple store abstraction [pom]
57+
[INFO] Triple store abstraction API [jar]
58+
[INFO] RDF4J triple store implementation [jar]
59+
[INFO] CGMES [pom]
60+
[INFO] CGMES network model [jar]
61+
[INFO] Computation API [jar]
62+
[INFO] Tools [jar]
63+
[INFO] Tools test [jar]
64+
[INFO] Local computation [jar]
65+
[INFO] Math [jar]
66+
[INFO] IIDM [pom]
67+
[INFO] IIDM network model [jar]
68+
[INFO] IIDM common extensions [jar]
69+
[INFO] Load-flow [pom]
70+
[INFO] Load-flow API [jar]
71+
[INFO] IIDM testing networks [jar]
72+
[INFO] IIDM TCK [jar]
73+
[INFO] IIDM network model implementation [jar]
74+
[INFO] IIDM XML converter [jar]
75+
[INFO] Network modifications [jar]
76+
[INFO] Contingency [pom]
77+
[INFO] Contingency API [jar]
78+
[INFO] Security Analysis [pom]
79+
[INFO] Security analysis API [jar]
80+
[INFO] AMPL converter implementation [jar]
81+
[INFO] AMPL model executor [jar]
82+
[INFO] CGMES extensions [jar]
83+
[INFO] CGMES network model test [jar]
84+
[INFO] CGMES conformity [jar]
85+
[INFO] Load-flow validation [jar]
86+
[INFO] Loadflow Results Completion [jar]
87+
[INFO] CGMES conversion [jar]
88+
[INFO] Time series [pom]
89+
[INFO] Time series API [jar]
90+
[INFO] ENTSO-E utilities [jar]
91+
[INFO] IEEE CDF [pom]
92+
[INFO] IEEE CDF model [jar]
93+
[INFO] IEEE CDF converter [jar]
94+
[INFO] Sensitivity analysis API [jar]
95+
[INFO] Short-circuit API [jar]
96+
[INFO] Network store client parent [pom]
97+
[INFO] Network store model [jar]
98+
[INFO] Network store IIDM impl [jar]
99+
[INFO] Network store client [jar]
100+
[INFO] powsybl open loadflow [jar]
101+
[INFO] PowSyBl Optimizer [pom]
102+
[INFO] OpenReac [jar]
103+
[INFO] Study Server [jar]
104+
```
105+
106+
TODO: can the version finding be automated?
107+
TODO: should we use .mvn/maven.config to record versions and maintain the list ?
108+
109+
110+
### Full java recompile for all docker images
111+
A full java recompile and docker image generation for all projects
112+
```
113+
$ cd backend
114+
$ mvn install -Dpowsybl.docker.install \
115+
-Dpowsybl-ws-commons.version=1.6.0-SNAPSHOT \
116+
-Dpowsybl-ws-dependencies.version=2.4.0-SNAPSHOT \
117+
-Dpowsybl-core.version=6.0.0-SNAPSHOT \
118+
-Dorg.gridsuite.dependencies=26-SNAPSHOT \
119+
-Dpowsybl-dependencies.version=2023.3.0-SNAPSHOT \
120+
-Dpowsybl-open-loadflow.version=1.3.0-SNAPSHOT \
121+
-Dpowsybl-diagram.version=4.0.0-SNAPSHOT \
122+
-Dpowsybl-dynawo.version=1.15.0-SNAPSHOT \
123+
-Dpowsybl-entsoe.version=2.6.0-SNAPSHOT \
124+
-Dpowsybl-case-datasource-client.version=1.3.0-SNAPSHOT \
125+
-Dpowsybl-network-store-client.version=1.4.0-SNAPSHOT \
126+
-Dpowsybl-open-reac.version=0.3.0-SNAPSHOT
127+
```
128+
TODO: can enforce that there is no source code that is ignored in this step ?
129+
130+
### Full java recompile with modified build system (powsybl-parent)
131+
TODO. It should be possible by modifying the relativePath and the parent version in all projects.
132+
TODO. can this be automated ?

0 commit comments

Comments
 (0)