WIP: build some maven dependencies, and some maven subprojects
maven-generate-component-xml.patch unknown status 1
1 | + | From 676c4e33be256e4af2e028088dd28ae7be511df3 Mon Sep 17 00:00:00 2001 | |
2 | + | From: Julien Lepiller <julien@lepiller.eu> | |
3 | + | Date: Sat, 9 Sep 2017 20:34:38 +0200 | |
4 | + | Subject: [PATCH] Add a script to generate component.xml files. | |
5 | + | ||
6 | + | plexus-component-metadata is normally used for this task, but it | |
7 | + | depends on maven-core, which depends on maven-model-builder, which needs | |
8 | + | plexus-component-metadata. This script is meant to break this dependency | |
9 | + | cycle. | |
10 | + | --- | |
11 | + | components.sh | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
12 | + | 1 file changed, 124 insertions(+) | |
13 | + | create mode 100755 components.sh | |
14 | + | ||
15 | + | diff --git a/components.sh b/components.sh | |
16 | + | new file mode 100755 | |
17 | + | index 0000000..a00b25b | |
18 | + | --- /dev/null | |
19 | + | +++ b/components.sh | |
20 | + | @@ -0,0 +1,124 @@ | |
21 | + | +## This script generates a rough plexus/components.xml file. It is meant to | |
22 | + | +## replace plexus-component-metadata as it eventually has a recursive dependency | |
23 | + | +## on itself. | |
24 | + | +## | |
25 | + | +## This script must be run in the source directory (usually src/main/java). | |
26 | + | + | |
27 | + | +# Finds the complete name from a class name. | |
28 | + | +function find_role() { | |
29 | + | + role=$1 | |
30 | + | + # Find role | |
31 | + | + case $role in | |
32 | + | + "ModelBuilder" | "ModelProcessor") | |
33 | + | + role=org.apache.maven.model.building.$role | |
34 | + | + ;; | |
35 | + | + "ModelValidator") | |
36 | + | + role=org.apache.maven.model.validation.$role | |
37 | + | + ;; | |
38 | + | + "ProfileInjector" | "ProfileSelector") | |
39 | + | + role=org.apache.maven.model.profile.$role | |
40 | + | + ;; | |
41 | + | + "ProfileActivator") | |
42 | + | + role=org.apache.maven.model.profile.activation.$role | |
43 | + | + ;; | |
44 | + | + "SuperPomProvider") | |
45 | + | + role=org.apache.maven.model.superpom.$role | |
46 | + | + ;; | |
47 | + | + "ReportConfigurationExpander" | "PluginConfigurationExpander" \ | |
48 | + | + | "ReportingConverter" | "LifecycleBindingsInjector") | |
49 | + | + role=org.apache.maven.model.plugin.$role | |
50 | + | + ;; | |
51 | + | + "ModelLocator") | |
52 | + | + role=org.apache.maven.model.locator.$role | |
53 | + | + ;; | |
54 | + | + "ModelPathTranslator" | "PathTranslator" | "UrlNormalizer" | "ModelUrlNormalizer") | |
55 | + | + role=org.apache.maven.model.path.$role | |
56 | + | + ;; | |
57 | + | + "DependencyManagementInjector" | "PluginManagementInjector") | |
58 | + | + role=org.apache.maven.model.management.$role | |
59 | + | + ;; | |
60 | + | + "ModelWriter" | "ModelReader") | |
61 | + | + role=org.apache.maven.model.io.$role | |
62 | + | + ;; | |
63 | + | + "DependencyManagementImporter") | |
64 | + | + role=org.apache.maven.model.composition.$role | |
65 | + | + ;; | |
66 | + | + "ModelNormalizer") | |
67 | + | + role=org.apache.maven.model.normalization.$role | |
68 | + | + ;; | |
69 | + | + "ModelInterpolator") | |
70 | + | + role=org.apache.maven.model.interpolation.$role | |
71 | + | + ;; | |
72 | + | + "InheritanceAssembler") | |
73 | + | + role=org.apache.maven.model.inheritance.$role | |
74 | + | + ;; | |
75 | + | + *) | |
76 | + | + role=$role | |
77 | + | + ;; | |
78 | + | + esac | |
79 | + | + echo $role | |
80 | + | +} | |
81 | + | + | |
82 | + | +function generate_xml() { | |
83 | + | +echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" | |
84 | + | +echo "<component-set>" | |
85 | + | +echo "<components>" | |
86 | + | + | |
87 | + | +for file in `find -name '*.java'`; do | |
88 | + | + annot=`grep "@Component" $file` | |
89 | + | + if [ "$?" == "0" ]; then | |
90 | + | + # We have a component! | |
91 | + | + role=$(echo $annot | sed 's|.*role = \(.*\).class.*|\1|') | |
92 | + | + role_hint=$(echo $annot | sed 's|.*hint = "\(.*\)" .*|\1|') | |
93 | + | + if [ "$role_hint" = "$annot" ]; then | |
94 | + | + role_hint=default | |
95 | + | + fi | |
96 | + | + implem=$(echo $file | sed -e 's|^\./||' -e 's|\.java||' -e 's|/|.|g') | |
97 | + | + role=$(find_role $role) | |
98 | + | + | |
99 | + | + echo "<component>" | |
100 | + | + echo " <role>$role</role>" | |
101 | + | + echo " <role-hint>$role_hint</role-hint>" | |
102 | + | + echo " <implementation>$implem</implementation>" | |
103 | + | + echo " <description />" | |
104 | + | + echo " <isolated-realm>false</isolated-realm>" | |
105 | + | + echo " <requirements>" | |
106 | + | + reqn=1 | |
107 | + | + cont=true | |
108 | + | + while [ "$cont" = "true" ]; do | |
109 | + | + requirement=$(grep "@Requirement" $file -A1 | head -n ${reqn} | tail -1) | |
110 | + | + ((reqn++)) | |
111 | + | + property=$(grep "@Requirement" $file -A1 | head -n ${reqn} | tail -1) | |
112 | + | + if (echo $requirement | grep "@Requirement" >/dev/null); then | |
113 | + | + ((reqn++)) | |
114 | + | + ((reqn++)) | |
115 | + | + optional=$(echo $requirement | sed 's|.*optional = \(.*\) .*|\1|') | |
116 | + | + req_role=$(echo $requirement | sed 's|.*role = \(.*\).class .*|\1|') | |
117 | + | + if (echo $req_role | grep "@Requirement" >/dev/null); then | |
118 | + | + req_role=$(echo $property | sed 's|.*private \(.*\) .*|\1|') | |
119 | + | + fi | |
120 | + | + req_role=$(find_role $req_role) | |
121 | + | + req_name=$(echo $property | sed 's|[^ ]* [^ ]* \([^ ;]*\).*|\1|') | |
122 | + | + echo " <requirement>" | |
123 | + | + echo " <role>$req_role</role>" | |
124 | + | + echo " <field-name>$req_name</field-name>" | |
125 | + | + if (echo $optional | grep "@Requirement" >/dev/null); then | |
126 | + | + : | |
127 | + | + else | |
128 | + | + echo " <optional>$optional</optional>" | |
129 | + | + fi | |
130 | + | + echo " </requirement>" | |
131 | + | + else | |
132 | + | + cont=false | |
133 | + | + fi | |
134 | + | + done | |
135 | + | + echo " </requirements>" | |
136 | + | + echo "</component>" | |
137 | + | + fi | |
138 | + | +done | |
139 | + | + | |
140 | + | +echo "</components>" | |
141 | + | +echo "</component-set>" | |
142 | + | +} | |
143 | + | + | |
144 | + | +(cd $1; generate_xml) > $2 | |
145 | + | -- | |
146 | + | 2.14.1 | |
147 | + |
more/packages/java.scm
5149 | 5149 | ("xmlgraphics" ,java-xmlgraphics-commons) | |
5150 | 5150 | ("logging" ,java-commons-logging-minimal) | |
5151 | 5151 | ("fop-util" ,java-fop-util))))) | |
5152 | + | ||
5153 | + | ;; | |
5154 | + | ;; | |
5155 | + | ;; | |
5156 | + | ;; let's try to build maven :) | |
5157 | + | ;; This was mostly adapted from https://gitlab.com/htgoebel/guix/blob/WIP-maven/gnu/packages/java.scm | |
5158 | + | ;; | |
5159 | + | ;; | |
5160 | + | ;; | |
5161 | + | ||
5162 | + | (define* (codehaus-plexus-origin projname version hash | |
5163 | + | #:optional (prefix "plexus-")) | |
5164 | + | (let* ((projname (string-append prefix projname)) | |
5165 | + | (url (string-append "https://github.com/codehaus-plexus/" projname | |
5166 | + | "/archive/" projname "-" version ".tar.gz"))) | |
5167 | + | (origin | |
5168 | + | (method url-fetch) | |
5169 | + | (uri url) | |
5170 | + | (sha256 (base32 hash))))) | |
5171 | + | ||
5172 | + | (define-public java-geronimo-xbean-reflect | |
5173 | + | (package | |
5174 | + | (name "java-geronimo-xbean-reflect") | |
5175 | + | (version "1807386") | |
5176 | + | (source (origin | |
5177 | + | (method svn-fetch) | |
5178 | + | (uri (svn-reference | |
5179 | + | ;(url "https://svn.apache.org/repos/asf/geronimo/xbean/trunk/") | |
5180 | + | (url "https://svn.apache.org/repos/asf/geronimo/xbean/tags/xbean-4.5/") | |
5181 | + | (revision 1807396))) | |
5182 | + | (sha256 | |
5183 | + | (base32 | |
5184 | + | "18q3i6jgm6rkw8aysfgihgywrdc5nvijrwnslmi3ww497jvri6ja")))) | |
5185 | + | (build-system ant-build-system) | |
5186 | + | (arguments | |
5187 | + | `(#:jar-name "geronimo-xbean-reflect.jar" | |
5188 | + | #:source-dir "xbean-reflect/src/main/java" | |
5189 | + | #:test-dir "xbean-reflect/src/test" | |
5190 | + | #:jdk ,icedtea-8 | |
5191 | + | #:test-exclude (list "**/Abstract*.java" "**/AsmParameterNameLoaderTest.java" | |
5192 | + | "**/ObjectRecipeTest.java" "**/ParameterNameLoaderTest.java" | |
5193 | + | "**/RecipeHelperTest.java" "**/XbeanAsmParameterNameLoaderTest.java") | |
5194 | + | #:phases | |
5195 | + | (modify-phases %standard-phases | |
5196 | + | (add-before 'build 'fix-source | |
5197 | + | (lambda _ | |
5198 | + | ;; org.apache.xbean.asm6 is actually repackaged java-asm | |
5199 | + | (substitute* "xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java" | |
5200 | + | (("org.apache.xbean.asm5") "org.objectweb.asm"))))))) | |
5201 | + | (inputs | |
5202 | + | `(("asm" ,java-asm) | |
5203 | + | ("log4j" ,java-log4j-api) | |
5204 | + | ("log4j-1.2" ,java-log4j-1.2-api) | |
5205 | + | ("log4j-core" ,java-log4j-core) | |
5206 | + | ("logging" ,java-commons-logging-minimal))) | |
5207 | + | (native-inputs | |
5208 | + | `(("junit" ,java-junit))) | |
5209 | + | (home-page "") | |
5210 | + | (synopsis "") | |
5211 | + | (description "") | |
5212 | + | (license license:asl2.0))) | |
5213 | + | ||
5214 | + | (define-public java-plexus-io | |
5215 | + | (package | |
5216 | + | (name "java-plexus-io") | |
5217 | + | (version "3.0.0") | |
5218 | + | (source (codehaus-plexus-origin | |
5219 | + | "plexus-io" version | |
5220 | + | "0f2j41kihaymxkpbm55smpxjja235vad8cgz94frfy3ppcp021dw" | |
5221 | + | "")) | |
5222 | + | (build-system ant-build-system) | |
5223 | + | (arguments | |
5224 | + | `(#:jar-name "plexus-io.jar" | |
5225 | + | #:source-dir "src/main/java" | |
5226 | + | #:test-dir "src/test" | |
5227 | + | #:jdk ,icedtea-8 | |
5228 | + | #:phases | |
5229 | + | (modify-phases %standard-phases | |
5230 | + | (add-before 'build 'copy-resources | |
5231 | + | (lambda _ | |
5232 | + | (mkdir-p "build/classes/META-INF/plexus") | |
5233 | + | (copy-file "src/main/resources/META-INF/plexus/components.xml" | |
5234 | + | "build/classes/META-INF/plexus/components.xml") | |
5235 | + | #t))))) | |
5236 | + | (inputs | |
5237 | + | `(("utils" ,java-plexus-utils) | |
5238 | + | ("commons-io" ,java-commons-io) | |
5239 | + | ("java-jsr305" ,java-jsr305))) | |
5240 | + | (native-inputs | |
5241 | + | `(("junit" ,java-junit) | |
5242 | + | ("hamcrest" ,java-hamcrest-core) | |
5243 | + | ("guava" ,java-guava) | |
5244 | + | ("classworlds" ,java-plexus-classworlds) | |
5245 | + | ("xbean" ,java-geronimo-xbean-reflect) | |
5246 | + | ("container-default" ,java-plexus-container-default-bootstrap))) | |
5247 | + | (home-page "") | |
5248 | + | (synopsis "") | |
5249 | + | (description "") | |
5250 | + | (license license:asl2.0))) | |
5251 | + | ||
5252 | + | (define-public java-iq80-snappy | |
5253 | + | (package | |
5254 | + | (name "java-iq80-snappy") | |
5255 | + | (version "0.4") | |
5256 | + | (source (origin | |
5257 | + | (method url-fetch) | |
5258 | + | (uri (string-append "https://github.com/dain/snappy/archive/snappy-" | |
5259 | + | version ".tar.gz")) | |
5260 | + | (sha256 | |
5261 | + | (base32 | |
5262 | + | "0rb3zhci7w9wzd65lfnk7p3ip0n6gb58a9qpx8n7r0231gahyamf")))) | |
5263 | + | (build-system ant-build-system) | |
5264 | + | (arguments | |
5265 | + | `(#:jar-name "container-default.jar" | |
5266 | + | #:source-dir "src/main/java" | |
5267 | + | #:test-dir "src/test" | |
5268 | + | #:jdk ,icedtea-8 | |
5269 | + | #:test-exclude (list "**/Abstract*.java" | |
5270 | + | "**/SnappyFramedStreamTest.java"); No runnable method | |
5271 | + | #:phases | |
5272 | + | (modify-phases %standard-phases | |
5273 | + | (replace 'check | |
5274 | + | (lambda _ | |
5275 | + | (define (test class) | |
5276 | + | (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") | |
5277 | + | ":build/classes" | |
5278 | + | ":build/test-classes") | |
5279 | + | "-Dtest.resources.dir=src/test/resources" | |
5280 | + | "org.testng.TestNG" "-testclass" | |
5281 | + | class))) | |
5282 | + | (system* "ant" "compile-tests") | |
5283 | + | (and | |
5284 | + | (test "org.iq80.snappy.SnappyFramedStreamTest") | |
5285 | + | (test "org.iq80.snappy.SnappyStreamTest")))) | |
5286 | + | ;(test "org.iq80.snappy.SnappyTest")))) | |
5287 | + | (add-before 'build 'remove-dep | |
5288 | + | (lambda _ | |
5289 | + | ;; We don't have hadoop | |
5290 | + | (delete-file "src/main/java/org/iq80/snappy/HadoopSnappyCodec.java") | |
5291 | + | (delete-file "src/test/java/org/iq80/snappy/TestHadoopSnappyCodec.java") | |
5292 | + | #t))))) | |
5293 | + | (home-page "https://github.com/dain/snappy") | |
5294 | + | (native-inputs | |
5295 | + | `(("guava" ,java-guava) | |
5296 | + | ("java-snappy" ,java-snappy) | |
5297 | + | ("hamcrest" ,java-hamcrest-core) | |
5298 | + | ("testng" ,java-testng))) | |
5299 | + | (synopsis "") | |
5300 | + | (description "") | |
5301 | + | (license license:asl2.0))) | |
5302 | + | ||
5303 | + | (define-public java-tukaani-xz | |
5304 | + | (package | |
5305 | + | (name "java-tukaani-xz") | |
5306 | + | (version "1.6") | |
5307 | + | (source (origin | |
5308 | + | (method url-fetch) | |
5309 | + | (uri (string-append "https://tukaani.org/xz/xz-java-" version ".zip")) | |
5310 | + | (sha256 | |
5311 | + | (base32 | |
5312 | + | "1z3p1ri1gvl07inxn0agx44ck8n7wrzfmvkz8nbq3njn8r9wba8x")))) | |
5313 | + | (build-system ant-build-system) | |
5314 | + | (arguments | |
5315 | + | `(#:tests? #f; no tests | |
5316 | + | #:phases | |
5317 | + | (modify-phases %standard-phases | |
5318 | + | (add-after 'unpack 'chdir | |
5319 | + | (lambda _ | |
5320 | + | ; The package is not unzipped in a subdirectory | |
5321 | + | (chdir ".."))) | |
5322 | + | (replace 'install | |
5323 | + | (lambda* (#:key outputs #:allow-other-keys) | |
5324 | + | ;; Do we want to install *Demo.jar? | |
5325 | + | (install-file "build/jar/xz.jar" | |
5326 | + | (string-append | |
5327 | + | (assoc-ref outputs "out") | |
5328 | + | "/share/java/xz.jar"))))))) | |
5329 | + | (native-inputs | |
5330 | + | `(("unzip" ,unzip))) | |
5331 | + | (home-page "https://tukaani.org") | |
5332 | + | (synopsis "") | |
5333 | + | (description "") | |
5334 | + | (license license:public-domain))) | |
5335 | + | ||
5336 | + | (define-public java-plexus-archiver | |
5337 | + | (package | |
5338 | + | (name "java-plexus-archiver") | |
5339 | + | (version "3.5") | |
5340 | + | (source (codehaus-plexus-origin | |
5341 | + | "plexus-archiver" version | |
5342 | + | "0iv1j7khra6icqh3jndng3iipfmkc7l5jq2y802cm8r575v75pyv" | |
5343 | + | "")) | |
5344 | + | (build-system ant-build-system) | |
5345 | + | (arguments | |
5346 | + | `(#:jar-name "container-default.jar" | |
5347 | + | #:source-dir "src/main/java" | |
5348 | + | #:jdk ,icedtea-8 | |
5349 | + | #:test-dir "src/test" | |
5350 | + | #:test-exclude (list "**/Abstract*.java" "**/Base*.java") | |
5351 | + | #:phases | |
5352 | + | (modify-phases %standard-phases | |
5353 | + | (add-before 'check 'remove-failing | |
5354 | + | (lambda _ | |
5355 | + | ;; Requires an older version of plexus container | |
5356 | + | (delete-file "src/test/java/org/codehaus/plexus/archiver/DuplicateFilesTest.java"))) | |
5357 | + | (add-before 'build 'copy-resources | |
5358 | + | (lambda _ | |
5359 | + | (mkdir-p "build/classes/META-INF/plexus") | |
5360 | + | (copy-file "src/main/resources/META-INF/plexus/components.xml" | |
5361 | + | "build/classes/META-INF/plexus/components.xml") | |
5362 | + | #t))))) | |
5363 | + | (inputs | |
5364 | + | `(("utils" ,java-plexus-utils) | |
5365 | + | ("commons-io" ,java-commons-io) | |
5366 | + | ("snappy" ,java-iq80-snappy) | |
5367 | + | ("io" ,java-plexus-io) | |
5368 | + | ("compress" ,java-commons-compress) | |
5369 | + | ("container-default" ,java-plexus-container-default-bootstrap) | |
5370 | + | ("snappy" ,java-snappy) | |
5371 | + | ("java-jsr305" ,java-jsr305))) | |
5372 | + | (native-inputs | |
5373 | + | `(("junit" ,java-junit) | |
5374 | + | ("classworld" ,java-plexus-classworlds) | |
5375 | + | ("xbean" ,java-geronimo-xbean-reflect) | |
5376 | + | ("xz" ,java-tukaani-xz) | |
5377 | + | ("guava" ,java-guava))) | |
5378 | + | (home-page "") | |
5379 | + | (synopsis "") | |
5380 | + | (description "") | |
5381 | + | (license license:asl2.0))) | |
5382 | + | ||
5383 | + | (define-public java-plexus-container-default-bootstrap | |
5384 | + | (package | |
5385 | + | (name "java-plexus-container-default-bootstrap") | |
5386 | + | (version "1.7.1") | |
5387 | + | (source (codehaus-plexus-origin | |
5388 | + | "plexus-containers" version | |
5389 | + | "07l7wfi0kxnabd175yvbkilb26mndnba0a1g0ac1rpfagv3qpnzw" | |
5390 | + | "")) | |
5391 | + | (build-system ant-build-system) | |
5392 | + | (arguments | |
5393 | + | `(#:jar-name "container-default.jar" | |
5394 | + | #:source-dir "plexus-container-default/src/main/java" | |
5395 | + | #:test-dir "plexus-container-default/src/test" | |
5396 | + | #:jdk ,icedtea-8 | |
5397 | + | #:tests? #f; requires plexus-archiver, which depends on this package | |
5398 | + | #:phases | |
5399 | + | (modify-phases %standard-phases | |
5400 | + | (add-before 'build 'copy-resources | |
5401 | + | (lambda _ | |
5402 | + | (mkdir-p "build/classes/META-INF/plexus") | |
5403 | + | (copy-file "plexus-container-default/src/main/resources/META-INF/plexus/components.xml" | |
5404 | + | "build/classes/META-INF/plexus/components.xml") | |
5405 | + | #t))))) | |
5406 | + | (inputs | |
5407 | + | `(("worldclass" ,java-plexus-classworlds) | |
5408 | + | ("xbean" ,java-geronimo-xbean-reflect) | |
5409 | + | ("utils" ,java-plexus-utils) | |
5410 | + | ("junit" ,java-junit) | |
5411 | + | ("guava" ,java-guava))) | |
5412 | + | (home-page "") | |
5413 | + | (synopsis "") | |
5414 | + | (description "") | |
5415 | + | (license license:asl2.0))) | |
5416 | + | ||
5417 | + | (define-public java-plexus-container-default | |
5418 | + | (package | |
5419 | + | (inherit java-plexus-container-default-bootstrap) | |
5420 | + | (name "java-plexus-container-default") | |
5421 | + | (arguments | |
5422 | + | `(#:jar-name "container-default.jar" | |
5423 | + | #:source-dir "plexus-container-default/src/main/java" | |
5424 | + | #:test-dir "plexus-container-default/src/test" | |
5425 | + | #:test-exclude (list "**/*Test.java" | |
5426 | + | "**/ComponentRealmCompositionTest.java") | |
5427 | + | #:jdk ,icedtea-8 | |
5428 | + | #:phases | |
5429 | + | (modify-phases %standard-phases | |
5430 | + | (add-before 'build 'copy-resources | |
5431 | + | (lambda _ | |
5432 | + | (mkdir-p "build/classes/META-INF/plexus") | |
5433 | + | (copy-file "plexus-container-default/src/main/resources/META-INF/plexus/components.xml" | |
5434 | + | "build/classes/META-INF/plexus/components.xml") | |
5435 | + | #t)) | |
5436 | + | (add-before 'check 'fix-paths | |
5437 | + | (lambda _ | |
5438 | + | (substitute* "plexus-container-default/src/test/java/org/codehaus/plexus/component/composition/ComponentRealmCompositionTest.java" | |
5439 | + | (("src/test") "plexus-container-default/src/test"))))))) | |
5440 | + | (inputs | |
5441 | + | `(("worldclass" ,java-plexus-classworlds) | |
5442 | + | ("xbean" ,java-geronimo-xbean-reflect) | |
5443 | + | ("utils" ,java-plexus-utils) | |
5444 | + | ("junit" ,java-junit) | |
5445 | + | ("guava" ,java-guava))) | |
5446 | + | (native-inputs | |
5447 | + | `(("archiver" ,java-plexus-archiver) | |
5448 | + | ("hamcrest" ,java-hamcrest-core))))) | |
5449 | + | ||
5450 | + | (define-public java-plexus-component-annotations | |
5451 | + | (package | |
5452 | + | (inherit java-plexus-container-default) | |
5453 | + | (name "java-plexus-component-annotations") | |
5454 | + | (arguments | |
5455 | + | `(#:jar-name "plexus-component-annotations.jar" | |
5456 | + | #:source-dir "plexus-component-annotations/src/main/java" | |
5457 | + | #:tests? #f)); no tests | |
5458 | + | (inputs '()) | |
5459 | + | (native-inputs '()))) | |
5460 | + | ||
5461 | + | (define-public java-plexus-component-metadata | |
5462 | + | (package | |
5463 | + | (inherit java-plexus-container-default) | |
5464 | + | (name "java-plexus-component-metadata") | |
5465 | + | (arguments | |
5466 | + | `(#:jar-name "plexus-component-metadata.jar" | |
5467 | + | #:source-dir "plexus-component-metadata/src/main/java" | |
5468 | + | #:test-dir "plexus-component-metadata/src/test" | |
5469 | + | #:jdk ,icedtea-8)) | |
5470 | + | (inputs | |
5471 | + | `(("container" ,java-plexus-container-default) | |
5472 | + | ("annotations" ,java-plexus-component-annotations) | |
5473 | + | ("utils" ,java-plexus-utils) | |
5474 | + | ("classworlds" ,java-plexus-classworlds) | |
5475 | + | ("cli" ,java-commons-cli) | |
5476 | + | ("qdox" ,java-qdox-1.12); TODO: package latest version | |
5477 | + | ("jdom2" ,java-jdom2) | |
5478 | + | ("asm" ,java-asm))) | |
5479 | + | (native-inputs '()))) | |
5480 | + | ||
5481 | + | (define-public java-sisu-build-api | |
5482 | + | (package | |
5483 | + | (name "java-sisu-build-api") | |
5484 | + | (version "0.0.7") | |
5485 | + | (source (origin | |
5486 | + | (method url-fetch) | |
5487 | + | (uri (string-append "https://github.com/sonatype/sisu-build-api/" | |
5488 | + | "archive/plexus-build-api-" version ".tar.gz")) | |
5489 | + | (sha256 | |
5490 | + | (base32 | |
5491 | + | "1c3rrpma3x634xp2rm2p5iskfhzdyc7qfbhjzr70agrl1jwghgy2")))) | |
5492 | + | (build-system ant-build-system) | |
5493 | + | (arguments | |
5494 | + | `(#:jar-name "sisu-build-api.jar" | |
5495 | + | #:source-dir "src/main/java" | |
5496 | + | #:jdk ,icedtea-8 | |
5497 | + | #:tests? #f; I??don't know how to run these tests | |
5498 | + | #:phases | |
5499 | + | (modify-phases %standard-phases | |
5500 | + | (add-before 'build 'copy-resources | |
5501 | + | (lambda _ | |
5502 | + | (mkdir-p "build/classes/org/sonatype/plexus/build/incremental") | |
5503 | + | (copy-file "src/main/resources/org/sonatype/plexus/build/incremental/version.properties" | |
5504 | + | "build/classes/org/sonatype/plexus/build/incremental/version.properties") | |
5505 | + | #t)) | |
5506 | + | (add-before 'build 'generate-plexus-compontent | |
5507 | + | (lambda _ | |
5508 | + | (mkdir-p "build/classes/META-INF/plexus") | |
5509 | + | ;; This file is required for plexus to inject this package. | |
5510 | + | ;; It is absent from the source code, so maybe it is generated? | |
5511 | + | (with-output-to-file "build/classes/META-INF/plexus/components.xml" | |
5512 | + | (lambda _ | |
5513 | + | (display | |
5514 | + | (string-append | |
5515 | + | "<component-set>\n" | |
5516 | + | " <components>\n" | |
5517 | + | " <component>\n" | |
5518 | + | " <role>org.sonatype.plexus.build.incremental.BuildContext</role>\n" | |
5519 | + | " <role-hint>default</role-hint>\n" | |
5520 | + | " <implementation>org.sonatype.plexus.build.incremental.DefaultBuildContext</implementation>\n" | |
5521 | + | " <description>Filesystem based non-incremental build context implementation which behaves as if all files\n" | |
5522 | + | "were just created.</description>\n" | |
5523 | + | " </component>\n" | |
5524 | + | " </components>\n" | |
5525 | + | "</component-set>\n"))))))))) | |
5526 | + | (inputs | |
5527 | + | `(("plexus-utils" ,java-plexus-utils) | |
5528 | + | ("plexus-container-default" ,java-plexus-container-default))) | |
5529 | + | (home-page "") | |
5530 | + | (synopsis "") | |
5531 | + | (description "") | |
5532 | + | (license license:asl2.0))) | |
5533 | + | ||
5534 | + | (define-public java-plexus-compiler-api | |
5535 | + | (package | |
5536 | + | (name "java-plexus-compiler-api") | |
5537 | + | (version "2.8.2") | |
5538 | + | (source (codehaus-plexus-origin | |
5539 | + | "plexus-compiler" version | |
5540 | + | "13lxk1yg8fzv4ihby1jmfjda60dkxx4rg89k9i6glddd78q1xl4h" | |
5541 | + | "")) | |
5542 | + | (build-system ant-build-system) | |
5543 | + | (arguments | |
5544 | + | `(#:jar-name "plexus-compiler-api.jar" | |
5545 | + | #:source-dir "plexus-compiler-api/src/main/java" | |
5546 | + | #:jdk ,icedtea-8 | |
5547 | + | #:test-dir "plexus-compiler-api/src/test")) | |
5548 | + | (inputs | |
5549 | + | `(("container" ,java-plexus-container-default) | |
5550 | + | ("util" ,java-plexus-utils))) | |
5551 | + | (native-inputs | |
5552 | + | `(("junit" ,java-junit))) | |
5553 | + | (home-page "") | |
5554 | + | (synopsis "") | |
5555 | + | (description "") | |
5556 | + | (license license:asl2.0))) | |
5557 | + | ||
5558 | + | (define-public java-plexus-compiler-javac | |
5559 | + | (package | |
5560 | + | (inherit java-plexus-compiler-api) | |
5561 | + | (name "java-plexus-compiler-javac") | |
5562 | + | (arguments | |
5563 | + | `(#:jar-name "plexus-compiler-javac.jar" | |
5564 | + | #:source-dir "plexus-compilers/plexus-compiler-javac/src/main/java" | |
5565 | + | #:jdk ,icedtea-8 | |
5566 | + | #:tests? #f; depends on compiler-test -> maven-core -> ... -> this package. | |
5567 | + | #:test-dir "plexus-compilers/plexus-compiler-javac/src/test")) | |
5568 | + | (inputs | |
5569 | + | `(("api" ,java-plexus-compiler-api) | |
5570 | + | ("utils" ,java-plexus-utils) | |
5571 | + | ("logging" ,java-plexus-container-default))) | |
5572 | + | (native-inputs | |
5573 | + | `(("junit" ,java-junit))))) | |
5574 | + | ||
5575 | + | (define-public java-modello-core | |
5576 | + | (package | |
5577 | + | (name "java-modello-core") | |
5578 | + | (version "1.9.1") | |
5579 | + | (source (codehaus-plexus-origin | |
5580 | + | "modello" version | |
5581 | + | "1nqa1arvyc84i8wn3vk08k46vf8bpqqnf5a6szdj2lc3s1yamlv8" | |
5582 | + | "")) ;; no prefix | |
5583 | + | (build-system ant-build-system) | |
5584 | + | (arguments | |
5585 | + | `(#:jar-name "modello-core.jar" | |
5586 | + | #:source-dir "modello-core/src/main/java" | |
5587 | + | #:test-dir "modello-core/src/test" | |
5588 | + | #:main-class "org.codehaus.modello.ModelloCli" | |
5589 | + | #:jdk ,icedtea-8 | |
5590 | + | #:phases | |
5591 | + | (modify-phases %standard-phases | |
5592 | + | (add-before 'build 'copy-resources | |
5593 | + | (lambda _ | |
5594 | + | (mkdir-p "build/classes/META-INF/plexus") | |
5595 | + | (copy-file "modello-core/src/main/resources/META-INF/plexus/components.xml" | |
5596 | + | "build/classes/META-INF/plexus/components.xml") | |
5597 | + | #t)) | |
5598 | + | (add-before 'check 'fix-tests | |
5599 | + | (lambda _ | |
5600 | + | (substitute* '("modello-core/src/test/java/org/codehaus/modello/core/DefaultModelloCoreTest.java" | |
5601 | + | "modello-core/src/test/java/org/codehaus/modello/core/io/ModelReaderTest.java") | |
5602 | + | (("src/test") "modello-core/src/test"))))))) | |
5603 | + | (inputs | |
5604 | + | `(("plexus-utils" ,java-plexus-utils) | |
5605 | + | ("container" ,java-plexus-container-default-bootstrap) | |
5606 | + | ("sisu" ,java-sisu-build-api))) | |
5607 | + | (native-inputs | |
5608 | + | `(("junit" ,java-junit) | |
5609 | + | ("classworlds" ,java-plexus-classworlds) | |
5610 | + | ("xbean" ,java-geronimo-xbean-reflect) | |
5611 | + | ("guava" ,java-guava))) | |
5612 | + | (home-page "http://codehaus-plexus.github.io/modello/") | |
5613 | + | (synopsis "") | |
5614 | + | (description "") | |
5615 | + | (license license:asl2.0))) | |
5616 | + | ||
5617 | + | (define-public java-modello-plugins-java | |
5618 | + | (package | |
5619 | + | (inherit java-modello-core) | |
5620 | + | (name "java-modello-plugins-java") | |
5621 | + | (arguments | |
5622 | + | `(#:jar-name "modello-plugins-java.jar" | |
5623 | + | #:source-dir "modello-plugins/modello-plugin-java/src/main/java" | |
5624 | + | #:test-dir "modello-plugins/modello-plugin-java/src/test" | |
5625 | + | #:jdk ,icedtea-8 | |
5626 | + | #:tests? #f; requires maven-model, which depends on this package | |
5627 | + | #:phases | |
5628 | + | (modify-phases %standard-phases | |
5629 | + | (add-before 'build 'copy-resources | |
5630 | + | (lambda _ | |
5631 | + | (mkdir-p "build/classes") | |
5632 | + | (copy-recursively "modello-plugins/modello-plugin-java/src/main/resources" | |
5633 | + | "build/classes") | |
5634 | + | #t))))) | |
5635 | + | (inputs | |
5636 | + | `(("core" ,java-modello-core) | |
5637 | + | ,@(package-inputs java-modello-core))))) | |
5638 | + | ||
5639 | + | (define-public java-modello-plugins-xml | |
5640 | + | (package | |
5641 | + | (inherit java-modello-core) | |
5642 | + | (name "java-modello-plugins-xml") | |
5643 | + | (arguments | |
5644 | + | `(#:jar-name "modello-plugins-xml.jar" | |
5645 | + | #:source-dir "modello-plugins/modello-plugin-xml/src/main/java" | |
5646 | + | #:test-dir "modello-plugins/modello-plugin-xml/src/test" | |
5647 | + | #:jdk ,icedtea-8 | |
5648 | + | #:phases | |
5649 | + | (modify-phases %standard-phases | |
5650 | + | (add-before 'build 'copy-resources | |
5651 | + | (lambda _ | |
5652 | + | (mkdir-p "build/classes") | |
5653 | + | (copy-recursively "modello-plugins/modello-plugin-xml/src/main/resources" | |
5654 | + | "build/classes") | |
5655 | + | #t)) | |
5656 | + | (add-before 'check 'fix-paths | |
5657 | + | (lambda _ | |
5658 | + | (substitute* "modello-plugins/modello-plugin-xml/src/test/java/org/codehaus/modello/plugins/xml/XmlModelloPluginTest.java" | |
5659 | + | (("src/test") "modello-plugins/modello-plugin-xml/src/test"))))))) | |
5660 | + | (inputs | |
5661 | + | `(("core" ,java-modello-core) | |
5662 | + | ("java" ,java-modello-plugins-java) | |
5663 | + | ,@(package-inputs java-modello-core))))) | |
5664 | + | ||
5665 | + | (define-public java-modello-test | |
5666 | + | (package | |
5667 | + | (inherit java-modello-core) | |
5668 | + | (name "java-modello-test") | |
5669 | + | (arguments | |
5670 | + | `(#:jar-name "modello-test.jar" | |
5671 | + | #:source-dir "modello-test/src/main/java" | |
5672 | + | #:tests? #f; no tests | |
5673 | + | #:jdk ,icedtea-8)) | |
5674 | + | (inputs | |
5675 | + | `(("utils" ,java-plexus-utils) | |
5676 | + | ("compiler-api" ,java-plexus-compiler-api) | |
5677 | + | ("compiler-javac" ,java-plexus-compiler-javac) | |
5678 | + | ("container" ,java-plexus-container-default))))) | |
5679 | + | ||
5680 | + | (define-public java-modello-plugins-xpp3 | |
5681 | + | (package | |
5682 | + | (inherit java-modello-core) | |
5683 | + | (name "java-modello-plugins-xpp3") | |
5684 | + | (arguments | |
5685 | + | `(#:jar-name "modello-plugins-xpp3.jar" | |
5686 | + | #:source-dir "modello-plugins/modello-plugin-xpp3/src/main/java" | |
5687 | + | #:test-dir "modello-plugins/modello-plugin-xpp3/src/test" | |
5688 | + | #:tests? #f; I can find some of its dependencies, for instance org.codehaus.modello.test.features.io.xpp3.ModelloFeaturesTestXpp3Reader | |
5689 | + | #:jdk ,icedtea-8 | |
5690 | + | #:phases | |
5691 | + | (modify-phases %standard-phases | |
5692 | + | (add-before 'build 'copy-resources | |
5693 | + | (lambda _ | |
5694 | + | (mkdir-p "build/classes") | |
5695 | + | (copy-recursively "modello-plugins/modello-plugin-xpp3/src/main/resources" | |
5696 | + | "build/classes") | |
5697 | + | #t))))) | |
5698 | + | (inputs | |
5699 | + | `(("core" ,java-modello-core) | |
5700 | + | ("java" ,java-modello-plugins-java) | |
5701 | + | ("xml" ,java-modello-plugins-xml) | |
5702 | + | ,@(package-inputs java-modello-core))) | |
5703 | + | (native-inputs | |
5704 | + | `(("xmlunit" ,java-xmlunit) | |
5705 | + | ("test" ,java-modello-test) | |
5706 | + | ,@(package-native-inputs java-modello-core))))) | |
5707 | + | ||
5708 | + | (define-public java-plexus-cipher | |
5709 | + | (package | |
5710 | + | (name "java-plexus-cipher") | |
5711 | + | (version "1.7") | |
5712 | + | (source (codehaus-plexus-origin | |
5713 | + | "cipher" version | |
5714 | + | "1j3r8xzlxlk340snkjp6lk2ilkxlkn8qavsfiq01f43xmvv8ymk3")) | |
5715 | + | (build-system ant-build-system) | |
5716 | + | (arguments | |
5717 | + | `(#:jar-name "plexus-cipher.jar" | |
5718 | + | #:source-dir "src/main/java" | |
5719 | + | #:jdk ,icedtea-8 | |
5720 | + | #:tests? #f; TODO: org.sonatype.guice.bean.containers.InjectedTestCase | |
5721 | + | #:phases | |
5722 | + | (modify-phases %standard-phases | |
5723 | + | (add-before 'build 'copy-resources | |
5724 | + | (lambda _ | |
5725 | + | (copy-recursively "src/main/resources" "build/classes")))))) | |
5726 | + | (inputs | |
5727 | + | `(("cdi-api" ,java-cdi-api) | |
5728 | + | ("inject" ,java-javax-inject))) | |
5729 | + | (home-page "http://codehaus-plexus.github.io/plexus-cipher/") | |
5730 | + | (synopsis "Encryption/decryption Component") | |
5731 | + | (description "") | |
5732 | + | (license license:asl2.0))) | |
5733 | + | ||
5734 | + | (define-public java-plexus-sec-dispatcher | |
5735 | + | (package | |
5736 | + | (name "java-plexus-sec-dispatcher") | |
5737 | + | (version "1.4") ;; Newest release listed at the Maven Central Repository. | |
5738 | + | (source (origin | |
5739 | + | ;; This project doesn't tag releases or publish tarballs, so we take | |
5740 | + | ;; the "prepare release plexus-sec-dispatcher-1.4" git commit. | |
5741 | + | (method url-fetch) | |
5742 | + | (uri (string-append "https://github.com/sonatype/plexus-sec-dispatcher/" | |
5743 | + | "archive/" "7db8f88048" ".tar.gz")) | |
5744 | + | (sha256 | |
5745 | + | (base32 | |
5746 | + | "1nvlwj2090nn7f0144pyamp3lfygahlcp09dx0faqgla57lr11hj")) | |
5747 | + | (file-name (string-append name "-" version ".tar.gz")))) | |
5748 | + | (arguments | |
5749 | + | `(#:jar-name "plexus-sec-dispatcher.jar" | |
5750 | + | #:source-dir "src/main/java" | |
5751 | + | #:jdk ,icedtea-8 | |
5752 | + | #:phases | |
5753 | + | (modify-phases %standard-phases | |
5754 | + | (add-before 'build 'generate-models | |
5755 | + | (lambda* (#:key inputs #:allow-other-keys) | |
5756 | + | (define (modello-single-mode file version mode) | |
5757 | + | (zero? (system* "java" | |
5758 | + | "org.codehaus.modello.ModelloCli" | |
5759 | + | file mode "src/main/java" version | |
5760 | + | "false" "true"))) | |
5761 | + | (let ((file "src/main/mdo/settings-security.mdo")) | |
5762 | + | (and | |
5763 | + | (modello-single-mode file "1.0.0" "java") | |
5764 | + | (modello-single-mode file "1.0.0" "xpp3-reader") | |
5765 | + | (modello-single-mode file "1.0.0" "xpp3-writer"))))) | |
5766 | + | (add-before 'check 'fix-paths | |
5767 | + | (lambda _ | |
5768 | + | (mkdir-p "target") | |
5769 | + | (copy-file "src/test/resources/test-sec.xml" | |
5770 | + | "target/sec.xml")))))) | |
5771 | + | (inputs | |
5772 | + | `(("cipher" ,java-plexus-cipher))) | |
5773 | + | (native-inputs | |
5774 | + | `(("modello" ,java-modello-core) | |
5775 | + | ;; for modello: | |
5776 | + | ("container" ,java-plexus-container-default) | |
5777 | + | ("classworlds" ,java-plexus-classworlds) | |
5778 | + | ("utils" ,java-plexus-utils) | |
5779 | + | ("guava" ,java-guava) | |
5780 | + | ("xbean" ,java-geronimo-xbean-reflect) | |
5781 | + | ("build-api" ,java-sisu-build-api) | |
5782 | + | ;; modello plugins: | |
5783 | + | ("java" ,java-modello-plugins-java) | |
5784 | + | ("xml" ,java-modello-plugins-xml) | |
5785 | + | ("xpp3" ,java-modello-plugins-xpp3) | |
5786 | + | ;; for tests | |
5787 | + | ("junit" ,java-junit))) | |
5788 | + | (build-system ant-build-system) | |
5789 | + | (home-page "http://spice.sonatype.org/plexus-sec-dispatcher/") | |
5790 | + | (synopsis "Plexus Security Dispatcher Component") | |
5791 | + | (description "") | |
5792 | + | (license license:asl2.0))) | |
5793 | + | ||
5794 | + | (define-public java-eclipse-aether-api | |
5795 | + | (package | |
5796 | + | (name "java-eclipse-aether-api") | |
5797 | + | (version "1.0.2") | |
5798 | + | (source (origin | |
5799 | + | (method url-fetch) | |
5800 | + | (uri (string-append "https://github.com/eclipse/aether-core/" | |
5801 | + | "archive/aether-1.0.2.v20150114.tar.gz")) | |
5802 | + | (sha256 | |
5803 | + | (base32 | |
5804 | + | "192x32hlyxs4p6xzaz1r1jrsqqr56akcl0lncq3av1zpbil6kqhh")))) | |
5805 | + | (build-system ant-build-system) | |
5806 | + | (arguments | |
5807 | + | `(#:jar-name "eclipse-aether-api.jar" | |
5808 | + | #:source-dir "aether-api/src/main/java" | |
5809 | + | #:test-dir "aether-api/src/test")) | |
5810 | + | (native-inputs | |
5811 | + | `(("junit" ,java-junit) | |
5812 | + | ("hamcrest" ,java-hamcrest-core))) | |
5813 | + | (home-page "https://projects.eclipse.org/projects/technology.aether") | |
5814 | + | (synopsis "") | |
5815 | + | (description "") | |
5816 | + | (license license:asl2.0))) | |
5817 | + | ||
5818 | + | (define-public maven | |
5819 | + | (package | |
5820 | + | (name "maven") | |
5821 | + | (version "3.3.9") | |
5822 | + | (source (origin | |
5823 | + | (method url-fetch) | |
5824 | + | (uri (string-append "https://archive.apache.org/dist/maven/" | |
5825 | + | "maven-3/" version "/source/" | |
5826 | + | "apache-maven-" version "-src.tar.gz")) | |
5827 | + | (sha256 (base32 "1g0iavyb34kvs3jfrx2hfnr8lr11m39sj852cy7528wva1glfl4i")) | |
5828 | + | (patches | |
5829 | + | (search-patches "maven-generate-component-xml.patch")))) | |
5830 | + | (build-system ant-build-system) | |
5831 | + | (arguments | |
5832 | + | `(#:jar-name "maven.jar" | |
5833 | + | #:source-dir "apache-maven")) | |
5834 | + | (home-page "") | |
5835 | + | (synopsis "") | |
5836 | + | (description "") | |
5837 | + | (license license:asl2.0))) | |
5838 | + | ||
5839 | + | (define-public maven-artifact | |
5840 | + | (package | |
5841 | + | (inherit maven) | |
5842 | + | (name "maven-artifact") | |
5843 | + | (arguments | |
5844 | + | `(#:jar-name "maven-artifact.jar" | |
5845 | + | #:source-dir "maven-artifact/src/main/java" | |
5846 | + | #:test-dir "maven-artifact/src/test" | |
5847 | + | #:main-class "org.apache.maven.artifact.versioning.ComparableVersion")) | |
5848 | + | (inputs | |
5849 | + | `(("java-plexus-utils" ,java-plexus-utils) | |
5850 | + | ("java-commons-lang3" ,java-commons-lang3))) | |
5851 | + | (native-inputs | |
5852 | + | `(("junit" ,java-junit))))) | |
5853 | + | ||
5854 | + | (define-public maven-model | |
5855 | + | (package | |
5856 | + | (inherit maven) | |
5857 | + | (name "maven-model") | |
5858 | + | (arguments | |
5859 | + | `(#:jar-name "maven-model.jar" | |
5860 | + | #:source-dir "maven-model/src/main/java" | |
5861 | + | #:test-dir "maven-model/src/test" | |
5862 | + | #:jdk ,icedtea-8 | |
5863 | + | #:phases | |
5864 | + | (modify-phases %standard-phases | |
5865 | + | (add-before 'build 'generate-models | |
5866 | + | (lambda* (#:key inputs #:allow-other-keys) | |
5867 | + | (define (modello-single-mode file version mode) | |
5868 | + | (zero? (system* "java" | |
5869 | + | "org.codehaus.modello.ModelloCli" | |
5870 | + | file mode "maven-model/src/main/java" version | |
5871 | + | "false" "true"))) | |
5872 | + | (let ((file "maven-model/src/main/mdo/maven.mdo")) | |
5873 | + | (and | |
5874 | + | (modello-single-mode file "4.0.0" "java") | |
5875 | + | (modello-single-mode file "4.0.0" "xpp3-reader") | |
5876 | + | (modello-single-mode file "4.0.0" "xpp3-writer") | |
5877 | + | (modello-single-mode file "4.0.0" "xpp3-extended-reader")))))))) | |
5878 | + | (inputs | |
5879 | + | `(("lang3" ,java-commons-lang3) | |
5880 | + | ("utils" ,java-plexus-utils))) | |
5881 | + | (native-inputs | |
5882 | + | `(("modello" ,java-modello-core) | |
5883 | + | ;; for modello: | |
5884 | + | ("container" ,java-plexus-container-default) | |
5885 | + | ("classworlds" ,java-plexus-classworlds) | |
5886 | + | ("guava" ,java-guava) | |
5887 | + | ("xbean" ,java-geronimo-xbean-reflect) | |
5888 | + | ("build-api" ,java-sisu-build-api) | |
5889 | + | ;; modello plugins: | |
5890 | + | ("java" ,java-modello-plugins-java) | |
5891 | + | ("xml" ,java-modello-plugins-xml) | |
5892 | + | ("xpp3" ,java-modello-plugins-xpp3) | |
5893 | + | ;; for tests | |
5894 | + | ("junit" ,java-junit))))) | |
5895 | + | ||
5896 | + | (define-public maven-settings | |
5897 | + | (package | |
5898 | + | (inherit maven) | |
5899 | + | (name "maven-settings") | |
5900 | + | (arguments | |
5901 | + | `(#:jar-name "maven-settings.jar" | |
5902 | + | #:source-dir "maven-settings/src/main/java" | |
5903 | + | #:jdk ,icedtea-8 | |
5904 | + | #:tests? #f; no tests | |
5905 | + | #:phases | |
5906 | + | (modify-phases %standard-phases | |
5907 | + | (add-before 'build 'generate-models | |
5908 | + | (lambda* (#:key inputs #:allow-other-keys) | |
5909 | + | (define (modello-single-mode file version mode) | |
5910 | + | (zero? (system* "java" | |
5911 | + | "org.codehaus.modello.ModelloCli" | |
5912 | + | file mode "maven-settings/src/main/java" version | |
5913 | + | "false" "true"))) | |
5914 | + | (let ((file "maven-settings/src/main/mdo/settings.mdo")) | |
5915 | + | (and | |
5916 | + | (modello-single-mode file "1.1.0" "java") | |
5917 | + | (modello-single-mode file "1.1.0" "xpp3-reader") | |
5918 | + | (modello-single-mode file "1.1.0" "xpp3-writer")))))))) | |
5919 | + | (native-inputs | |
5920 | + | `(("modello" ,java-modello-core) | |
5921 | + | ;; for modello: | |
5922 | + | ("container" ,java-plexus-container-default) | |
5923 | + | ("classworlds" ,java-plexus-classworlds) | |
5924 | + | ("utils" ,java-plexus-utils) | |
5925 | + | ("guava" ,java-guava) | |
5926 | + | ("xbean" ,java-geronimo-xbean-reflect) | |
5927 | + | ("build-api" ,java-sisu-build-api) | |
5928 | + | ;; modello plugins: | |
5929 | + | ("java" ,java-modello-plugins-java) | |
5930 | + | ("xml" ,java-modello-plugins-xml) | |
5931 | + | ("xpp3" ,java-modello-plugins-xpp3))))) | |
5932 | + | ||
5933 | + | (define-public maven-builder-support | |
5934 | + | (package | |
5935 | + | (inherit maven) | |
5936 | + | (name "maven-builder-support") | |
5937 | + | (arguments | |
5938 | + | `(#:jar-name "maven-builder-support.jar" | |
5939 | + | #:source-dir "maven-builder-support/src/main/java" | |
5940 | + | #:jdk ,icedtea-8 | |
5941 | + | #:test-dir "maven-builder-support/src/test" | |
5942 | + | #:phases | |
5943 | + | (modify-phases %standard-phases | |
5944 | + | (add-before 'check 'fix-paths | |
5945 | + | (lambda _ | |
5946 | + | (substitute* '("maven-builder-support/src/test/java/org/apache/maven/building/FileSourceTest.java" | |
5947 | + | "maven-builder-support/src/test/java/org/apache/maven/building/UrlSourceTest.java") | |
5948 | + | (("target/test-classes") "maven-builder-support/src/test/resources")) | |
5949 | + | #t))))) | |
5950 | + | (inputs | |
5951 | + | `(("utils" ,java-plexus-utils) | |
5952 | + | ("lang3" ,java-commons-lang3))) | |
5953 | + | (native-inputs | |
5954 | + | `(("junit" ,java-junit) | |
5955 | + | ("hamcrest" ,java-hamcrest-core))))) | |
5956 | + | ||
5957 | + | (define-public maven-settings-builder | |
5958 | + | (package | |
5959 | + | (inherit maven) | |
5960 | + | (name "maven-settings-builder") | |
5961 | + | (arguments | |
5962 | + | `(#:jar-name "maven-settings-builder.jar" | |
5963 | + | #:source-dir "maven-settings-builder/src/main/java" | |
5964 | + | #:jdk ,icedtea-8 | |
5965 | + | #:test-dir "maven-settings-builder/src/test")) | |
5966 | + | (inputs | |
5967 | + | `(("utils" ,java-plexus-utils) | |
5968 | + | ("annotations" ,java-plexus-component-annotations) | |
5969 | + | ("interpolation" ,java-plexus-interpolation) | |
5970 | + | ("sec-dispatcher" ,java-plexus-sec-dispatcher) | |
5971 | + | ("support" ,maven-builder-support) | |
5972 | + | ("settings" ,maven-settings) | |
5973 | + | ("lang3" ,java-commons-lang3))) | |
5974 | + | (native-inputs | |
5975 | + | `(("junit" ,java-junit))))) | |
5976 | + | ||
5977 | + | (define-public maven-plugin-lifecycle | |
5978 | + | (package | |
5979 | + | (inherit maven) | |
5980 | + | (name "maven-plugin-api") | |
5981 | + | (arguments | |
5982 | + | `(#:jar-name "maven-plugin-api.jar" | |
5983 | + | #:source-dir "maven-plugin-api/src/main/java" | |
5984 | + | #:jdk ,icedtea-8 | |
5985 | + | #:test-dir "maven-plugin-api/test")) | |
5986 | + | (inputs | |
5987 | + | `(("artifact" ,maven-artifact) | |
5988 | + | ("container" ,java-plexus-container-default) | |
5989 | + | ("utils" ,java-plexus-utils) | |
5990 | + | ("classworlds" ,java-plexus-classworlds))) | |
5991 | + | (native-inputs '()))) | |
5992 | + | ||
5993 | + | (define-public maven-plugin-api | |
5994 | + | (package | |
5995 | + | (inherit maven) | |
5996 | + | (name "maven-plugin-api") | |
5997 | + | (arguments | |
5998 | + | `(#:jar-name "maven-plugin-api.jar" | |
5999 | + | #:source-dir "maven-plugin-api/src/main/java" | |
6000 | + | #:jdk ,icedtea-8 | |
6001 | + | #:test-dir "maven-plugin-api/test")) | |
6002 | + | (inputs | |
6003 | + | `(("artifact" ,maven-artifact) | |
6004 | + | ("container" ,java-plexus-container-default) | |
6005 | + | ("utils" ,java-plexus-utils))) | |
6006 | + | (native-inputs '()))) | |
6007 | + | ||
6008 | + | (define-public maven-model-builder | |
6009 | + | (package | |
6010 | + | (inherit maven) | |
6011 | + | (name "maven-model-builder") | |
6012 | + | (arguments | |
6013 | + | `(#:jar-name "maven-model-builder.jar" | |
6014 | + | #:source-dir "maven-model-builder/src/main/java" | |
6015 | + | #:jdk ,icedtea-8 | |
6016 | + | #:test-dir "maven-model-builder/src/test" | |
6017 | + | #:phases | |
6018 | + | (modify-phases %standard-phases | |
6019 | + | (add-before 'build 'copy-resources | |
6020 | + | (lambda _ | |
6021 | + | (copy-recursively "maven-model-builder/src/main/resources" | |
6022 | + | "build/classes"))) | |
6023 | + | (add-before 'build 'generate-components.xml | |
6024 | + | (lambda _ | |
6025 | + | (mkdir-p "build/classes/META-INF/plexus") | |
6026 | + | (chmod "components.sh" #o755) | |
6027 | + | (zero? (system* "./components.sh" "maven-model-builder/src/main/java" | |
6028 | + | "build/classes/META-INF/plexus/components.xml")))) | |
6029 | + | (add-before 'check 'fix-paths | |
6030 | + | (lambda _ | |
6031 | + | (substitute* (find-files "maven-model-builder/src/test/java" ".*.java") | |
6032 | + | (("src/test") "maven-model-builder/src/test")) | |
6033 | + | #t))))) | |
6034 | + | (inputs | |
6035 | + | `(("model" ,maven-model) | |
6036 | + | ("artifact" ,maven-artifact) | |
6037 | + | ("support" ,maven-builder-support) | |
6038 | + | ("annotations" ,java-plexus-component-annotations) | |
6039 | + | ("utils" ,java-plexus-utils) | |
6040 | + | ("interpolation" ,java-plexus-interpolation) | |
6041 | + | ("lang3" ,java-commons-lang3) | |
6042 | + | ("guava" ,java-guava))) | |
6043 | + | (native-inputs | |
6044 | + | `(("junit" ,java-junit) | |
6045 | + | ("hamcrest" ,java-hamcrest-core) | |
6046 | + | ("container" ,java-plexus-container-default) | |
6047 | + | ("xmlunit" ,java-xmlunit) | |
6048 | + | ("xmlunit" ,java-xmlunit-legacy) | |
6049 | + | ("xbean" ,java-geronimo-xbean-reflect) | |
6050 | + | ("classworlds" ,java-plexus-classworlds))))) | |
6051 | + | ||
6052 | + | (define-public maven-core | |
6053 | + | (package | |
6054 | + | (inherit maven) | |
6055 | + | (name "maven-core") | |
6056 | + | (arguments | |
6057 | + | `(#:jar-name "maven-core.jar" | |
6058 | + | #:source-dir "maven-core/src/main/java" | |
6059 | + | #:jdk ,icedtea-8 | |
6060 | + | #:test-dir "maven-core/src/test" | |
6061 | + | #:phases | |
6062 | + | (modify-phases %standard-phases | |
6063 | + | (add-before 'build 'generate-models | |
6064 | + | (lambda* (#:key inputs #:allow-other-keys) | |
6065 | + | (define (modello-single-mode file version mode) | |
6066 | + | (zero? (system* "java" | |
6067 | + | "org.codehaus.modello.ModelloCli" | |
6068 | + | file mode "maven-core/src/main/java" version | |
6069 | + | "false" "true"))) | |
6070 | + | (let ((file "maven-core/src/main/mdo/toolchains.mdo")) | |
6071 | + | (and | |
6072 | + | (modello-single-mode file "1.1.0" "java") | |
6073 | + | (modello-single-mode file "1.1.0" "xpp3-reader") | |
6074 | + | (modello-single-mode file "1.1.0" "xpp3-writer")))))))) | |
6075 | + | (inputs | |
6076 | + | `(("artifact" ,maven-artifact) | |
6077 | + | ("model" ,maven-model) | |
6078 | + | ("model-builder" ,maven-model-builder) | |
6079 | + | ("settings" ,maven-settings) | |
6080 | + | ("settings-builder" ,maven-settings-builder) | |
6081 | + | ("container" ,java-plexus-container-default) | |
6082 | + | ("annotations" ,java-plexus-component-annotations) | |
6083 | + | ("utils" ,java-plexus-utils) | |
6084 | + | ("lang3" ,java-commons-lang3) | |
6085 | + | ("guava" ,java-guava) | |
6086 | + | ("aether" ,java-eclipse-aether-api) | |
6087 | + | ("java-javax-inject" ,java-javax-inject) | |
6088 | + | ("classworld" ,java-plexus-classworlds))) | |
6089 | + | (native-inputs | |
6090 | + | `(("modello" ,java-modello-core) | |
6091 | + | ("classworlds" ,java-plexus-classworlds) | |
6092 | + | ("xbean" ,java-geronimo-xbean-reflect) | |
6093 | + | ("build-api" ,java-sisu-build-api) | |
6094 | + | ("java" ,java-modello-plugins-java) | |
6095 | + | ("xml" ,java-modello-plugins-xml) | |
6096 | + | ("xpp3" ,java-modello-plugins-xpp3))))) |