@@ -116,64 +116,49 @@ ba_log "Generating Codename One application skeleton via codenameone-maven-plugi
116116
117117APP_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
121121ROOT_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)
124124ensure_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
156142ensure_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 "
172156done < <( 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
175159EXTRA_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