1 |
commit: 96d9679d0a19f3bbaf404005465b924eb3018e08 |
2 |
Author: heroxbd <heroxbd <AT> gmail <DOT> com> |
3 |
AuthorDate: Wed Oct 5 15:31:59 2016 +0000 |
4 |
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Oct 5 15:31:59 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=96d9679d |
7 |
|
8 |
Major updates to resolve dependency (#8) |
9 |
|
10 |
* MavenEbuilder: mavenProject targetversion is not an array. |
11 |
|
12 |
* MavenVersion: expand regex. |
13 |
|
14 |
1. match 3.1.4.GA (org.jboss.logging:jboss-logging) |
15 |
2. match 2.0b6 (org.apache-extras.beanshell:bsh) |
16 |
|
17 |
* MavenCache: artifactId may not be identical to gentoo package. |
18 |
|
19 |
* MavenCache: give explicit error messages as place holders when |
20 |
dependency is missing. |
21 |
|
22 |
* script/meta.sh: auxiliary script to relate gentoo repo to maven |
23 |
repo metadata. |
24 |
|
25 |
* Specify the default jre version. |
26 |
|
27 |
* tree.sh: recursively call java-ebuilder. |
28 |
|
29 |
* meta.sh: use maven to enumerate child modules. |
30 |
|
31 |
* meta.sh: add more exceptions. |
32 |
|
33 |
* MavenEbuilder.java: handle SLOT dependency according to ebuild styles. |
34 |
|
35 |
If SLOT=0, no SLOT is used in CLASSPATH. |
36 |
|
37 |
* MavenEbuilder.java: remove JAVA_SRC_DIR. |
38 |
|
39 |
Not needed. The default is enough. |
40 |
Because we have one ebuild per child module. |
41 |
|
42 |
* MavenParser.java: mvn timeout to 10minutes. |
43 |
|
44 |
When something cannot be downloaded, maven could use several minutes |
45 |
to finish. |
46 |
|
47 |
* MavenParser.java: let scope default to "compile". |
48 |
|
49 |
It is interpreted as common dependencies. Some poms does not |
50 |
specify scopes of their dependencies. |
51 |
|
52 |
* MavenParser.java: remove maven build instructions. |
53 |
|
54 |
They are not used at all. Parsing them can cause error in some poms. |
55 |
|
56 |
The side effect is that testdependencies are not triggered. |
57 |
|
58 |
* MavenProject.java: remove system dependencies. |
59 |
|
60 |
They are deprecated: |
61 |
|
62 |
https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#System_Dependencies |
63 |
|
64 |
They are satisfied by virtual/jdk. |
65 |
|
66 |
* MavenProject.java: source encoding default to UTF-8. |
67 |
|
68 |
* PortageParser.java: consider dev-java/ant-* ebuilds. |
69 |
|
70 |
* MavenParser.java: parse opengl-api version from pom. |
71 |
|
72 |
README | 23 +++++ |
73 |
scripts/meta.sh | 101 +++++++++++++++++++ |
74 |
scripts/tree.sh | 111 +++++++++++++++++++++ |
75 |
.../org/gentoo/java/ebuilder/maven/MavenCache.java | 6 +- |
76 |
.../gentoo/java/ebuilder/maven/MavenEbuilder.java | 23 +++-- |
77 |
.../gentoo/java/ebuilder/maven/MavenParser.java | 14 +-- |
78 |
.../gentoo/java/ebuilder/maven/MavenProject.java | 6 +- |
79 |
.../gentoo/java/ebuilder/portage/MavenVersion.java | 2 +- |
80 |
.../java/ebuilder/portage/PortageParser.java | 6 ++ |
81 |
9 files changed, 269 insertions(+), 23 deletions(-) |
82 |
|
83 |
diff --git a/README b/README |
84 |
new file mode 100644 |
85 |
index 0000000..e74f482 |
86 |
--- /dev/null |
87 |
+++ b/README |
88 |
@@ -0,0 +1,23 @@ |
89 |
+Java team tool for semi-automatic creation of ebuilds from pom.xml. |
90 |
+ |
91 |
+Use example: |
92 |
+ |
93 |
+1. Generate cache of java related packages from portage tree. |
94 |
+java-ebuilder --refresh-cache -t /usr/portage |
95 |
+ |
96 |
+2. Find corresponding maven groupId, artifactId and version in the cache. |
97 |
+cd $HOME/.java-ebuilder |
98 |
+mv cache cache.raw0 |
99 |
+( echo 1.0; tail -n +2 cache.raw0 | parallel -j -2 scripts/meta.sh; ) > cache.0 |
100 |
+ |
101 |
+3. Generate cache of java related packages from java overaly. |
102 |
+java-ebuilder --refresh-cache -t /var/lib/layman/java |
103 |
+ |
104 |
+4. Find corresponding maven groupId, artifactId and version in the cache. |
105 |
+cd $HOME/.java-ebuilder |
106 |
+mv cache cache.raw1 |
107 |
+( echo 1.0; tail -n +2 cache.raw1 | parallel -j -2 scripts/meta.sh; ) > cache.1 |
108 |
+ |
109 |
+5. Create ebuild recursively. |
110 |
+script/tree.sh org.apache.spark:spark-core_2.11:2.0.0 |
111 |
+ |
112 |
|
113 |
diff --git a/scripts/meta.sh b/scripts/meta.sh |
114 |
new file mode 100755 |
115 |
index 0000000..0a142c8 |
116 |
--- /dev/null |
117 |
+++ b/scripts/meta.sh |
118 |
@@ -0,0 +1,101 @@ |
119 |
+#!/usr/bin/env bash |
120 |
+# read in cache from java-ebuilder and find out the groupId, |
121 |
+# artifactId and version. |
122 |
+ |
123 |
+# cache is by default at $HOME/.java-ebuilder/cache |
124 |
+# example: |
125 |
+# ( echo 1.0; tail -n +2 cache | parallel -j -2 meta.sh; ) > cache.1 |
126 |
+ |
127 |
+pkg=$(awk -F ":" '{print $1"/"$2"-"$3}' <<< $1) |
128 |
+spkg=$(cut -d: -f2 <<< $1) |
129 |
+sver=$(cut -d: -f3 <<< $1) |
130 |
+case ${spkg} in |
131 |
+ guava) |
132 |
+ echo $1:com.google.guava:${spkg}:${sver%%-*} |
133 |
+ exit 0 |
134 |
+ ;; |
135 |
+ json) |
136 |
+ echo $1:org.json:${spkg}:${sver%%-*} |
137 |
+ exit 0 |
138 |
+ ;; |
139 |
+ xerces) |
140 |
+ echo $1:xerces:${spkg}:${sver%%-*} |
141 |
+ echo $1:xerces:xercesImpl:${sver%%-*} |
142 |
+ echo $1:xerces:xmlParserAPIs:${sver%%-*} |
143 |
+ exit 0 |
144 |
+ ;; |
145 |
+ commons-*|classworlds|jdom) |
146 |
+ echo $1:${spkg}:${spkg}:${sver%%-*} |
147 |
+ exit 0 |
148 |
+ ;; |
149 |
+ velocity) |
150 |
+ echo $1:org.apache.${spkg}:${spkg}:${sver%%-*} |
151 |
+ exit 0 |
152 |
+ ;; |
153 |
+ jtidy) |
154 |
+ echo $1:net.sf.${spkg}:${spkg}:${sver%%-*} |
155 |
+ exit 0 |
156 |
+ ;; |
157 |
+ saxpath) |
158 |
+ echo $1:${spkg}:${spkg}:${sver%%-*}-FCS # maven version |
159 |
+ echo $1:org.jdom:${spkg}:${sver%%-*}-FCS |
160 |
+ exit 0 |
161 |
+ ;; |
162 |
+ ant*) |
163 |
+ [[ ${spkg} = ant-core ]] && { spkg=ant; echo $1:ant:${spkg}:${sver%%-*}; } |
164 |
+ [[ ${spkg} = ant-ivy ]] && spkg=ivy |
165 |
+ echo $1:org.apache.ant:${spkg}:${sver%%-*} |
166 |
+ exit 0 |
167 |
+ ;; |
168 |
+ bcpg|bcprov) |
169 |
+ echo $1:org.bouncycastle:${spkg}-jdk12:130 |
170 |
+ for jv in 1{4,5,6}; do |
171 |
+ echo $1:org.bouncycastle:${spkg}-jdk${jv}:${sver%%-*} |
172 |
+ done |
173 |
+ exit 0 |
174 |
+ ;; |
175 |
+ asm) |
176 |
+ echo $1:org.ow2.asm:${spkg}:${sver%%-*} |
177 |
+ echo $1:org.ow2.asm:${spkg}-all:${sver%%-*} |
178 |
+ echo $1:org.ow2.asm:${spkg}-debug-all:${sver%%-*} |
179 |
+ exit 0 |
180 |
+esac |
181 |
+ |
182 |
+grep -q ${pkg} <bebd <bpom && exit 0 |
183 |
+ |
184 |
+ebd=$(equery w ${pkg} 2>/dev/null) |
185 |
+if [[ -z "${ebd}" ]]; then |
186 |
+ echo $1:${pkg} >> bebd |
187 |
+ exit 0 |
188 |
+fi |
189 |
+ |
190 |
+# java-utils-2.eclass:java-pkg_needs-vm() |
191 |
+export JAVA_PKG_NV_DEPEND="nothing" |
192 |
+ |
193 |
+if ! ebuild ${ebd} unpack >/dev/null 2>&1; then |
194 |
+ echo $1:${pkg} >> bebd |
195 |
+ exit 0 |
196 |
+fi |
197 |
+ |
198 |
+bad_pom="yes" |
199 |
+for subd in /dev/shm/portage/${pkg}/work/*; do |
200 |
+ [[ -f ${subd}/pom.xml ]] || continue |
201 |
+ bad_pom="" |
202 |
+ pushd ${subd} > /dev/null |
203 |
+ poms=$(mvn -q --also-make exec:exec -Dexec.executable="pwd" 2> /dev/null | grep ^/) |
204 |
+ popd > /dev/null |
205 |
+ for pd in ${poms}; do |
206 |
+ ppom=$(xml2 < ${pd}/pom.xml | egrep '(groupId|artifactId|version)=') |
207 |
+ PG=$(echo "${ppom}" | sed -n -r -e 's,/project/groupId=(.*),\1,p') |
208 |
+ [[ -z ${PG} ]] && PG=$(echo "${ppom}" | sed -n -r -e 's,/project/parent/groupId=(.*),\1,p') |
209 |
+ PA=$(echo "${ppom}" | sed -n -r -e 's,/project/artifactId=(.*),\1,p') |
210 |
+ PV=$(echo "${ppom}" | sed -n -r -e 's,/project/version=(.*),\1,p') |
211 |
+ [[ -z ${PV} ]] && PV=$(echo "${ppom}" | sed -n -r -e 's,/project/parent/version=(.*),\1,p') |
212 |
+ echo $1:${PG}:${PA}:${PV/-SNAPSHOT/} |
213 |
+ done |
214 |
+done |
215 |
+if [[ -n "${bad_pom}" ]]; then |
216 |
+ echo $1:${pkg} >> bpom |
217 |
+fi |
218 |
+ |
219 |
+ebuild ${ebd} clean >/dev/null 2>&1 |
220 |
|
221 |
diff --git a/scripts/tree.sh b/scripts/tree.sh |
222 |
new file mode 100755 |
223 |
index 0000000..5482a0b |
224 |
--- /dev/null |
225 |
+++ b/scripts/tree.sh |
226 |
@@ -0,0 +1,111 @@ |
227 |
+#!/usr/bin/env bash |
228 |
+# start from the root of a maven artifact and recursively resolve its |
229 |
+# dependencies. |
230 |
+ |
231 |
+mkdir -p ../poms |
232 |
+ |
233 |
+gebd() { |
234 |
+ case ${MA} in |
235 |
+ weld-osgi-bundle) |
236 |
+ # 1.1.0.Final no longer exist |
237 |
+ [[ ${MV} = 1.1.0.Final ]] && MV=1.1.33.Final |
238 |
+ ;; |
239 |
+ esac |
240 |
+ |
241 |
+ local WORKDIR=${PG//./\/}/${MA} MID |
242 |
+ local MID=${PG}:${MA}:${MV} |
243 |
+ # .Final .GA .v20121024 means nothing |
244 |
+ local PV=${MV%.[a-zA-Z]*} PA SLOT |
245 |
+ |
246 |
+ case ${MA} in |
247 |
+ opengl-api) |
248 |
+ [[ ${MV} = 2.1.1 ]] && MV=gl1.1-android-2.1_r1 |
249 |
+ ;; |
250 |
+ esac |
251 |
+ |
252 |
+ # plexus-container-default 1.0-alpha-9-stable-1 |
253 |
+ PV=${PV/-stable-*/} |
254 |
+ PV=${PV/-alpha-/_alpha} |
255 |
+ # wagon-provider-api 1.0-beta-7 |
256 |
+ PV=${PV/-beta-/_beta} |
257 |
+ # aopalliance-repackaged 2.5.0-b16 |
258 |
+ PV=${PV/-b/_beta} |
259 |
+ # javax.xml.stream:stax-api:1.0-2 |
260 |
+ PV=${PV//-/.} |
261 |
+ |
262 |
+ local M=${MA}-${MV} |
263 |
+ local SRC_URI="http://central.maven.org/maven2/${WORKDIR}/${MV}/${M}-sources.jar" |
264 |
+ |
265 |
+ # spark-launcher_2.11 for scala 2.11 |
266 |
+ eval $(sed -nr 's,([^_]*)(_(.*))?,PA=\1 SLOT=\3,p' <<< ${MA}) |
267 |
+ [[ -z "${SLOT}" ]] && eval $(sed -nr 's,(.*)-(([0-9]+\.)?[0-9]+),PA=\1 SLOT=\2,p' <<< ${MA}) |
268 |
+ [[ -z "${SLOT}" ]] && PA=${MA} |
269 |
+ PA=${PA//./-} |
270 |
+ PA=${PA//_/-} |
271 |
+ local P=${PA}-${PV} |
272 |
+ local ebd=app-maven/${PA}/${P}.ebuild |
273 |
+ |
274 |
+ if [[ ! -f ../poms/${M}.pom ]]; then |
275 |
+ pushd ../poms |
276 |
+ wget ${SRC_URI/-sources.jar/.pom} |
277 |
+ |
278 |
+ # 3rd party plugin not needed here |
279 |
+ # distributionManagement is invalid for maven 3 |
280 |
+ # net.sf.jtidy:jtidy:r938 version is not maven-compliant |
281 |
+ sed -e '/<packaging>bundle/d' \ |
282 |
+ -e '/<distributionManagement>/,/<\/distributionManagement>/d' \ |
283 |
+ -e '/<build>/,/<\/build>/d' \ |
284 |
+ -e '/<modules>/,/<\/modules>/d' \ |
285 |
+ -e 's,<version>r938</version>,<version>1.0</version>,' \ |
286 |
+ -i ${M}.pom |
287 |
+ popd |
288 |
+ fi |
289 |
+ |
290 |
+ wget -q --spider ${SRC_URI} || SRC_URI=${SRC_URI/-sources.jar/.jar} |
291 |
+ |
292 |
+ if [[ ! -f app-maven/${PA}/${P}.ebuild ]]; then |
293 |
+ mkdir -p app-maven/${PA} |
294 |
+ java-ebuilder -p ../poms/${M}.pom -e ${ebd} -g --workdir . \ |
295 |
+ -u ${SRC_URI} --slot ${SLOT:-0} --keywords ~amd64 |
296 |
+ |
297 |
+ # empty parent artifacts |
298 |
+ # FIXME, this should be removed in poms |
299 |
+ sed -i '/app-maven\/jsch-agentproxy-[0-9]/d' ${ebd} |
300 |
+ fi |
301 |
+ |
302 |
+ line=app-maven:${PA}:${PV}:${SLOT:-0}::${MID} |
303 |
+ if ! grep -q ${line} ${HOME}/.java-ebuilder/maven-cache ; then |
304 |
+ pushd ${HOME}/.java-ebuilder > /dev/null |
305 |
+ echo ${line} >> maven-cache |
306 |
+ cat cache.{0,1} maven-cache > cache |
307 |
+ popd > /dev/null |
308 |
+ fi |
309 |
+ |
310 |
+ if [[ -z "${MAVEN_NODEP}" ]] && mfill app-maven/${PA}/${P}.ebuild; then |
311 |
+ java-ebuilder -p ../poms/${M}.pom -e ${ebd} -g --workdir . \ |
312 |
+ -u ${SRC_URI} --slot ${SLOT:-0} --keywords ~amd64 |
313 |
+ fi |
314 |
+ |
315 |
+ [[ ${SRC_URI} = *-sources.jar ]] || sed -i "/inherit/s/java-pkg-simple/java-pkg-binjar/" ${ebd} |
316 |
+} |
317 |
+ |
318 |
+mfill() { |
319 |
+ # recursively fill missing dependencies |
320 |
+ arts=$(sed -n -r 's,# (test\? )?(.*)-> !!!.*-not-found!!!,\2,p' < $1) |
321 |
+ if [[ -z "${arts}" ]]; then |
322 |
+ false # no need to java-ebuilder again |
323 |
+ else |
324 |
+ for a in ${arts}; do |
325 |
+ eval $(awk -F":" '{print "PG="$1, "MA="$2, "MV="$3}' <<< ${a}) |
326 |
+ gebd |
327 |
+ done |
328 |
+ return |
329 |
+ fi |
330 |
+} |
331 |
+ |
332 |
+if [[ $1 == *.ebuild ]]; then |
333 |
+ mfill $1 |
334 |
+else |
335 |
+ eval $(awk -F":" '{print "PG="$1, "MA="$2, "MV="$3}' <<< $1) |
336 |
+ gebd |
337 |
+fi |
338 |
|
339 |
diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java |
340 |
index 1c139c1..1295856 100644 |
341 |
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java |
342 |
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenCache.java |
343 |
@@ -43,13 +43,13 @@ public class MavenCache { |
344 |
final Map<String, List<CacheItem>> artifactIds = cache.get(groupId); |
345 |
|
346 |
if (artifactIds == null) { |
347 |
- return null; |
348 |
+ return "!!!groupId-not-found!!!"; |
349 |
} |
350 |
|
351 |
final List<CacheItem> versions = artifactIds.get(artifactId); |
352 |
|
353 |
if (versions == null) { |
354 |
- return null; |
355 |
+ return "!!!artifactId-not-found!!!"; |
356 |
} |
357 |
|
358 |
final MavenVersion mavenVersion = new MavenVersion(version); |
359 |
@@ -156,7 +156,7 @@ public class MavenCache { |
360 |
|
361 |
if (versions == null) { |
362 |
versions = new ArrayList<>(10); |
363 |
- artifactIds.put(cacheItem.getPkg(), versions); |
364 |
+ artifactIds.put(cacheItem.getArtifactId(), versions); |
365 |
} |
366 |
|
367 |
versions.add(cacheItem); |
368 |
|
369 |
diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java |
370 |
index c6e18bd..067ea80 100644 |
371 |
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java |
372 |
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java |
373 |
@@ -72,10 +72,18 @@ public class MavenEbuilder { |
374 |
sbCP.append(','); |
375 |
} |
376 |
|
377 |
- sbCP.append(dependency.getSystemDependency(). |
378 |
- replaceAll(".*/", ""). |
379 |
- replaceAll("\\[.*\\]", ""). |
380 |
- replace(":", "-")); |
381 |
+ String[] parts = dependency.getSystemDependency(). |
382 |
+ replaceAll(".*/", ""). |
383 |
+ replaceAll("\\[.*\\]", ""). |
384 |
+ split(":"); |
385 |
+ String PN = parts[0].replaceAll("-r\\d+$", ""); |
386 |
+ if (parts.length == 2) { |
387 |
+ PN = PN.substring(0, PN.lastIndexOf('-')); |
388 |
+ if (!parts[1].equals("0")) { |
389 |
+ PN += "-" + parts[1]; |
390 |
+ } |
391 |
+ } |
392 |
+ sbCP.append(PN); |
393 |
}); |
394 |
|
395 |
return sbCP.toString(); |
396 |
@@ -301,7 +309,7 @@ public class MavenEbuilder { |
397 |
mavenProject.getCommonDependencies(), null); |
398 |
} |
399 |
|
400 |
- if (!mavenProject.getTargetVersion().isEmpty()) { |
401 |
+ if (mavenProject.getTargetVersion()!=null) { |
402 |
writeDependenciesInfo(writer, mavenProject.getPomFile(), |
403 |
mavenProject.getTestDependencies(), "test?"); |
404 |
} |
405 |
@@ -633,11 +641,6 @@ public class MavenEbuilder { |
406 |
writer.println('"'); |
407 |
} |
408 |
|
409 |
- writer.print("JAVA_SRC_DIR=\""); |
410 |
- writer.print(config.getWorkdir().relativize( |
411 |
- mavenProject.getSourceDirectory())); |
412 |
- writer.println('"'); |
413 |
- |
414 |
if (mavenProject.hasResources()) { |
415 |
writer.print("JAVA_RESOURCE_DIRS=\""); |
416 |
|
417 |
|
418 |
diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java |
419 |
index 52449dc..ba876f2 100644 |
420 |
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java |
421 |
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java |
422 |
@@ -112,10 +112,10 @@ public class MavenParser { |
423 |
} |
424 |
|
425 |
try { |
426 |
- process.waitFor(1, TimeUnit.MINUTES); |
427 |
+ process.waitFor(10, TimeUnit.MINUTES); |
428 |
} catch (final InterruptedException ex) { |
429 |
config.getErrorWriter().println("ERROR: mvn process did not finish " |
430 |
- + "within 1 minute, exiting."); |
431 |
+ + "within 10 minute, exiting."); |
432 |
Runtime.getRuntime().exit(1); |
433 |
} |
434 |
|
435 |
@@ -389,9 +389,6 @@ public class MavenParser { |
436 |
case "artifactId": |
437 |
mavenProject.setArtifactId(reader.getElementText()); |
438 |
break; |
439 |
- case "build": |
440 |
- parseProjectBuild(mavenProject, reader); |
441 |
- break; |
442 |
case "dependencies": |
443 |
parseProjectDependencies(mavenProject, mavenCache, |
444 |
reader); |
445 |
@@ -509,7 +506,7 @@ public class MavenParser { |
446 |
String groupId = null; |
447 |
String artifactId = null; |
448 |
String version = null; |
449 |
- String scope = null; |
450 |
+ String scope = "compile"; |
451 |
|
452 |
while (reader.hasNext()) { |
453 |
reader.next(); |
454 |
@@ -528,6 +525,11 @@ public class MavenParser { |
455 |
case "version": |
456 |
version = reader.getElementText().replace("-SNAPSHOT", |
457 |
""); |
458 |
+ /* crazy version from |
459 |
+ * org.khronos:opengl-api:gl1.1-android-2.1_r1 */ |
460 |
+ if (version.equals("gl1.1-android-2.1_r1")) { |
461 |
+ version = "2.1.1"; |
462 |
+ } |
463 |
break; |
464 |
default: |
465 |
consumeElement(reader); |
466 |
|
467 |
diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java |
468 |
index adec6a6..af05c7c 100644 |
469 |
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java |
470 |
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenProject.java |
471 |
@@ -63,7 +63,7 @@ public class MavenProject { |
472 |
/** |
473 |
* Source encoding. |
474 |
*/ |
475 |
- private String sourceEncoding = "1.7"; |
476 |
+ private String sourceEncoding = "UTF-8"; |
477 |
/** |
478 |
* Source compile version. |
479 |
*/ |
480 |
@@ -71,7 +71,7 @@ public class MavenProject { |
481 |
/** |
482 |
* Target compile version. |
483 |
*/ |
484 |
- private String targetVersion; |
485 |
+ private String targetVersion = "1.7"; |
486 |
/** |
487 |
* Test resource directories. |
488 |
*/ |
489 |
@@ -155,7 +155,7 @@ public class MavenProject { |
490 |
* @return list of dependencies |
491 |
*/ |
492 |
public List<MavenDependency> getCompileDependencies() { |
493 |
- return getDependencies(new String[]{"provided", "system"}); |
494 |
+ return getDependencies(new String[]{"provided"}); |
495 |
} |
496 |
|
497 |
/** |
498 |
|
499 |
diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java b/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java |
500 |
index 002ea5a..e603943 100644 |
501 |
--- a/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java |
502 |
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/MavenVersion.java |
503 |
@@ -14,7 +14,7 @@ public class MavenVersion implements Comparable<MavenVersion> { |
504 |
* Pattern for parsing maven version number. |
505 |
*/ |
506 |
private static final Pattern PATTERN_VERSION = Pattern.compile( |
507 |
- "^(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-(.*))?$"); |
508 |
+ "^(\\d+)(?:\\.(\\d+))?(?:[\\.b](\\d+))?(?:[\\.-](.*))?$"); |
509 |
/** |
510 |
* Incremental version number. |
511 |
*/ |
512 |
|
513 |
diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java |
514 |
index c2cc976..aa8a14b 100644 |
515 |
--- a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java |
516 |
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java |
517 |
@@ -45,6 +45,10 @@ public class PortageParser { |
518 |
* Current java utilities eclass name. |
519 |
*/ |
520 |
private static final String ECLASS_JAVA_UTILS = "java-utils-2"; |
521 |
+ /** |
522 |
+ * Current ant utilities eclass name. |
523 |
+ */ |
524 |
+ private static final String ECLASS_ANT_TASKS = "ant-tasks"; |
525 |
/** |
526 |
* Pattern for parsing SLOT with bash substring. |
527 |
*/ |
528 |
@@ -126,6 +130,8 @@ public class PortageParser { |
529 |
return ECLASS_JAVA_PKG_SIMPLE; |
530 |
} else if (inheritLine.contains(ECLASS_JAVA_UTILS)) { |
531 |
return ECLASS_JAVA_UTILS; |
532 |
+ } else if (inheritLine.contains(ECLASS_ANT_TASKS)) { |
533 |
+ return ECLASS_ANT_TASKS; |
534 |
} else { |
535 |
return null; |
536 |
} |