Skip to content

Commit a1f464f

Browse files
committed
Another attempt at fixing versioning
1 parent 26a49aa commit a1f464f

File tree

1 file changed

+17
-32
lines changed

1 file changed

+17
-32
lines changed

scripts/build-android-app.sh

Lines changed: 17 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -116,64 +116,49 @@ ba_log "Generating Codename One application skeleton via codenameone-maven-plugi
116116

117117
APP_DIR="$WORK_DIR/$ARTIFACT_ID"
118118

119-
# --- Normalize Codename One versions post-generation (no versions-maven-plugin) ---
119+
# --- Normalize CN1 versions without versions-maven-plugin ---
120120

121121
ROOT_POM="$APP_DIR/pom.xml"
122122

123-
# 1) Ensure a codenameone.version property exists in the root pom
123+
# 1) Ensure codenameone.version property exists (or update it)
124124
ensure_property() {
125125
local pom="$1" name="$2" value="$3"
126-
127126
if ! grep -q "<properties>" "$pom"; then
128-
# Insert a <properties> block near the top-level <project> block
129127
awk -v v="$value" -v n="$name" '
130-
BEGIN{inserted=0}
131-
/<project[^>]*>/ && inserted==0 {
132-
print;
133-
print " <properties>";
134-
print " <" n ">" v "</" n ">";
135-
print " </properties>";
136-
inserted=1; next
137-
}
128+
BEGIN{ins=0}
129+
/<project[^>]*>/ && !ins { print; print " <properties>\n <" n ">" v "</" n ">\n </properties>"; ins=1; next }
138130
{print}
139131
' "$pom" > "$pom.tmp" && mv "$pom.tmp" "$pom"
140132
elif ! grep -q "<${name}>" "$pom"; then
141-
# Add the property inside existing <properties>
142133
awk -v v="$value" -v n="$name" '
143-
/<properties>/ && !done {
144-
print;
145-
print " <" n ">" v "</" n ">";
146-
done=1; next
147-
}
134+
/<properties>/ && !done { print; print " <" n ">" v "</" n ">"; done=1; next }
148135
{print}
149136
' "$pom" > "$pom.tmp" && mv "$pom.tmp" "$pom"
150137
else
151-
# Update existing property value
152138
perl -0777 -pe "s|(<${name}>)[^<]+(</${name}>)|\$1${value}\$2|s" -i "$pom"
153139
fi
154140
}
155141

156142
ensure_property "$ROOT_POM" "codenameone.version" "$CN1_VERSION"
157143

158-
# 2) Rewrite com.codenameone dependency versions to ${codenameone.version}
159-
rewrite_versions() {
160-
local pom="$1"
161-
# Dependencies
162-
perl -0777 -pe 's!(<dependency>\s*<groupId>com\.codenameone[^<]*</groupId>\s*<artifactId>[^<]+</artifactId>\s*<version>)[^<]+(</version>)!${1}${codenameone.version}${2}!sg' -i "$pom"
163-
# Plugins
164-
perl -0777 -pe 's!(<plugin>\s*<groupId>com\.codenameone[^<]*</groupId>\s*<artifactId>[^<]+</artifactId>\s*<version>)[^<]+(</version>)!${1}${codenameone.version}${2}!sg' -i "$pom"
165-
}
144+
# 2) In every pom.xml:
145+
# - Point <parent><version> to ${codenameone.version} for Codename One parent
146+
# - Set com.codenameone dependencies/plugins <version>${codenameone.version}</version>
147+
while IFS= read -r -d '' P; do
148+
# Parent version -> ${codenameone.version}
149+
perl -0777 -pe 's!(<parent>\s*<groupId>com\.codenameone</groupId>\s*<artifactId>codenameone-maven-parent</artifactId>\s*<version>)[^<]+(</version>)!${1}${codenameone.version}${2}!s' -i "$P"
166150

167-
export codenameone_version_placeholder='${codenameone.version}'
151+
# Dependencies (only com.codenameone)
152+
perl -0777 -pe 's!(<dependency>\s*<groupId>com\.codenameone[^<]*</groupId>\s*<artifactId>[^<]+</artifactId>\s*<version>)[^<]+(</version>)!${1}${codenameone.version}${2}!sg' -i "$P"
168153

169-
# Walk all poms under the generated app (skip non-poms like cn1libs/)
170-
while IFS= read -r -d '' P; do
171-
rewrite_versions "$P"
154+
# Plugins (only com.codenameone)
155+
perl -0777 -pe 's!(<plugin>\s*<groupId>com\.codenameone[^<]*</groupId>\s*<artifactId>[^<]+</artifactId>\s*<version>)[^<]+(</version>)!${1}${codenameone.version}${2}!sg' -i "$P"
172156
done < <(find "$APP_DIR" -type f -name pom.xml -print0)
173157

174-
# 3) From now on, build with the property explicitly set too (helps any missed spots)
158+
# 3) Build with the property set so any missed spots still resolve correctly
175159
EXTRA_MVN_ARGS+=("-Dcodenameone.version=${CN1_VERSION}")
176160

161+
177162
[ -d "$APP_DIR" ] || { ba_log "Failed to create Codename One application project" >&2; exit 1; }
178163
[ -f "$APP_DIR/build.sh" ] && chmod +x "$APP_DIR/build.sh"
179164

0 commit comments

Comments
 (0)