Continuing work on qualimap (Was: Any help?)
- To: Bas Couwenberg <sebastic@xs4all.nl>
- Cc: debian-java@lists.debian.org
- Subject: Continuing work on qualimap (Was: Any help?)
- From: Andreas Tille <andreas@an3as.eu>
- Date: Tue, 24 Nov 2015 14:17:52 +0100
- Message-id: <[🔎] 20151124131752.GL29080@an3as.eu>
- In-reply-to: <8b914f9c6b2f4a33b2ae365f7001028b@xs4all.nl>
- References: <20151123094802.GB13138@an3as.eu> <56537AEB.9090908@xs4all.nl> <20151123212047.GA29080@an3as.eu> <5653A874.7090807@xs4all.nl> <20151124114218.GI29080@an3as.eu> <8b914f9c6b2f4a33b2ae365f7001028b@xs4all.nl>
Hi Bas,
I decided to switch back to the list to make these helpful hints
available for web search. I guess you will not mind the proof that you
are just very helpful. ;-)
For those who are missing context: Bas is helping me getting
git://git.debian.org/git/debian-med/qualimap.git
into shape.
On Tue, Nov 24, 2015 at 01:04:55PM +0100, Bas Couwenberg wrote:
> On 2015-11-24 12:42, Andreas Tille wrote:
> >On Tue, Nov 24, 2015 at 12:59:48AM +0100, Sebastiaan Couwenberg wrote:
> >>samtools.jar is not available in the maven repository, so you'll need to
> >>install it manually in d/rules like elasticsearch did for jts:
> >>
> >>https://sources.debian.net/src/elasticsearch/1.7.3%2Bdfsg-2/debian/rules/#L34
> >>https://sources.debian.net/src/elasticsearch/1.7.3%2Bdfsg-2/debian/maven.rules/#L10
> >>
> >>miglayout.jar is likewise also not in the maven repository, but you may
> >>be able to use miglayout-parent instead.
> >
> >I added libmiglayout-java as Build-Depends. I do not understand the hint
> >to miglayout-parent. Any example?
>
> Maven can only use the packaged JARs if they're available in the local Maven
> repository, to check if a Java package registers the JARs it builds with
> Maven (using maven-repo-helper) I check the package content with apt-file,
> eg.:
>
> $ apt-file show libmiglayout-java
> libmiglayout-java: /usr/share/doc/libmiglayout-java/changelog.Debian.gz
> libmiglayout-java: /usr/share/doc/libmiglayout-java/copyright
> libmiglayout-java: /usr/share/java/miglayout-4.2.jar
> libmiglayout-java: /usr/share/java/miglayout-core-4.2.jar
> libmiglayout-java: /usr/share/java/miglayout-core.jar
> libmiglayout-java: /usr/share/java/miglayout-ideutil-4.2.jar
> libmiglayout-java: /usr/share/java/miglayout-ideutil.jar
> libmiglayout-java: /usr/share/java/miglayout-swing-4.2.jar
> libmiglayout-java: /usr/share/java/miglayout-swing.jar
> libmiglayout-java: /usr/share/java/miglayout-swt-4.2.jar
> libmiglayout-java: /usr/share/java/miglayout-swt.jar
> libmiglayout-java: /usr/share/java/miglayout.jar
> libmiglayout-java:
> /usr/share/maven-repo/com/miglayout/miglayout-core/4.2/miglayout-core-4.2.jar
> libmiglayout-java:
> /usr/share/maven-repo/com/miglayout/miglayout-core/4.2/miglayout-core-4.2.pom
> libmiglayout-java: /usr/share/maven-repo/com/miglayout/miglayout-core/debian/miglayout-core-debian.jar
> libmiglayout-java: /usr/share/maven-repo/com/miglayout/miglayout-core/debian/miglayout-core-debian.pom
> libmiglayout-java: /usr/share/maven-repo/com/miglayout/miglayout-ideutil/4.2/miglayout-ideutil-4.2.jar
> libmiglayout-java: /usr/share/maven-repo/com/miglayout/miglayout-ideutil/4.2/miglayout-ideutil-4.2.pom
> libmiglayout-java: /usr/share/maven-repo/com/miglayout/miglayout-ideutil/debian/miglayout-ideutil-debian.jar
> libmiglayout-java: /usr/share/maven-repo/com/miglayout/miglayout-ideutil/debian/miglayout-ideutil-debian.pom
> libmiglayout-java: /usr/share/maven-repo/com/miglayout/miglayout-parent/4.2/miglayout-parent-4.2.pom
> libmiglayout-java: /usr/share/maven-repo/com/miglayout/miglayout-parent/debian/miglayout-parent-debian.pom
> libmiglayout-java: /usr/share/maven-repo/com/miglayout/miglayout-swing/4.2/miglayout-swing-4.2.jar
> libmiglayout-java: /usr/share/maven-repo/com/miglayout/miglayout-swing/4.2/miglayout-swing-4.2.pom
> libmiglayout-java: /usr/share/maven-repo/com/miglayout/miglayout-swing/debian/miglayout-swing-debian.jar
> libmiglayout-java: /usr/share/maven-repo/com/miglayout/miglayout-swing/debian/miglayout-swing-debian.pom
> libmiglayout-java:
> /usr/share/maven-repo/com/miglayout/miglayout-swt/4.2/miglayout-swt-4.2.jar
> libmiglayout-java:
> /usr/share/maven-repo/com/miglayout/miglayout-swt/4.2/miglayout-swt-4.2.pom
> libmiglayout-java: /usr/share/maven-repo/com/miglayout/miglayout-swt/debian/miglayout-swt-debian.jar
> libmiglayout-java: /usr/share/maven-repo/com/miglayout/miglayout-swt/debian/miglayout-swt-debian.pom
>
> As you can see there is no entry in the maven-repo for the miglayout
> artifact, only the -core, -ideutil, -swing & -swg JARs.
>
> The miglayout-parent artifact is the only one not matching a JAR by the same
> name, so I suspect it's for miglayout.jar.
>
> To use miglayout-parent for the miglayout dependency you need to add the
> following to maven.rules to mangle the dependency defined in pom.xml:
>
> com.miglayout s/miglayout/miglayout-parent/ * s/.*/debian/ * *
>
> Because the pom.xml has this dependency:
>
> <dependency>
> <groupId>com.miglayout</groupId>
> <artifactId>miglayout</artifactId>
> <version>3.7.4</version>
> </dependency>
>
> It will cause maven to check for /usr/share/maven-repo/com/miglayout/miglayout/3.7.4/miglayout-3.7.4.{jar,pom},
> but that isn't provided by libmiglayout-java. You need to mangle the version
> to check for /usr/share/maven-repo/com/miglayout/miglayout/debian/miglayout-debian.{jar,pom}
> at least, but that still leaves the missing artifact (miglayout vs
> miglayout-parent). With the suggested entry in maven.rules, maven will check
> for /usr/share/maven-repo/com/miglayout/miglayout-parent/debian/miglayout-parent-debian.{jar,pom}
> instead.
Thanks for your patience in explaining. The fog becomes a bit clearer
even if it has not fully settled. ;-)
> If the -parent artifact doesn't provide the classes required for qualimap,
> they're probably provided by miglayout-core for which you'd need this entry
> in maven.rules:
>
> com.miglayout s/miglayout/miglayout-core/ * s/.*/debian/ * *
>
> >>picard.jar is in the same boat as samtools.jar, and needs to be manually
> >>installed into the local maven repository.
Just to prove that I did not fully understood the principle I have now:
...
mvn --offline install:install-file \
-Dmaven.repo.local=/build/qualimap-2.1.3+dfsg/debian/maven-repo \
-Dfile=/usr/share/java/sam.jar \
-DgroupId=net/sf \
-DartifactId=samtools \
-Dversion=fake \
-Dpackaging=jar
[INFO]
NOTE: Maven is executing in offline mode. Any artifacts not already in your local
repository will be inaccessible.
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'install'.
[INFO] ------------------------------------------------------------------------
[INFO] Building qualimap
[INFO] task-segment: [install:install-file] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [install:install-file {execution: default-cli}]
[INFO] pom.xml not found in sam.jar
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] The artifact information is incomplete or not valid:
[0] 'groupId' with value 'net/sf' does not match a valid id pattern.
...
I'm afraid that it might be due to the fact that in sam.jar two directories
(or should I say groupIds?) reside next to each other. I might have choosen
the wrong one or any other thing was wrong.
> This just shows that you also need to build depend on
> libmaven-install-plugin-java, because it wasn't found in the local maven
> repository used for the packaged JARs.
Damn, this was a simple one which I should have found myself ...
> >is not specifically connected to the maven override rules.
> >
> >I'm afraid I keep on doing things terribly wrong. :-(
>
> You'll get the hang of it eventually :-)
I do not give up the hope. ;-)
Thanks a lot for your private support
Andreas.
--
http://fam-tille.de
Reply to: