Le 16/11/2015 17:22, Andreas Tille a écrit : > While I know that these classes are part of BioJava I fail to understand > how to craft these magical regexps maven wants me to provide.
biojava probably doesn't install the Maven artifacts , that's why mh_make can't find bioinfo-ngs. If it does install the artifacts but under a different name, then you need a replacement rule. If the Maven coordinates of the jar equivalent to bioinfo-ngs is foo:bar, then you need this rule: s/org.bioinfo/foo/ s/bioinfo-ngs/bar/ * s/.*/debian/ * * > In pom.xml: This plugin cannot be found in the Debian Maven repository. > Ignore this plugin? > org.apache.maven.plugins:maven-dependency-plugin:maven-plugin:2.7 > [y/N] > Install libmaven-dependency-plugin-java and try again. > In pom.xml: This dependency cannot be found in the Debian Maven repository. > Ignore this dependency? net.sf.picard:picard:jar:1.70 The Maven artifacts for net.sf.picard:picard are not installed by picard-tools. You should extract a libpicard-java package from the binary package picard-tools and add the artifacts there. > but what the hell are groupID and artifactId. This looks like pure magic to > me. Let's start with some Maven basics then :) Libraries in a Maven repository are uniquely identified by a group ID, an artifact ID and a version (plus other subtleties, but let's keep things simple). The group identifier often relates to the author of the library, for example the Apache Commons developers use the "org.apache.commons" groupId. The artifact identifier names the library for this group. For Apache commons it's commons-collections, commons-io, commons-lang, etc. Maven expect the libraries to live in a repository, in Debian we use /usr/share/maven-repo. For every library there should be two files (the Maven artifacts) : /usr/share/maven-repo/groupId/artifactId/version/artifactId-version.jar /usr/share/maven-repo/groupId/artifactId/version/artifactId-version.pom If these files do not exist, Maven can't find them (that's what happens with picard-tools). maven-debian-helper install them automatically. For Ant and Gradle based packages you have to use maven-repo-helper to get them installed. Sometimes the coordinates (groupId+artifactId) of a library change, if your project uses the old coordinates and the Debian package uses the new one you have to replace them. That's where the rules comes into play. A rule is just a space separated list of regular expressions to replace the groupId, the artifactId, the type (rarely changed), the version (often s/.*/debian/) and the classifier (rare). I hope it's clearer now :) Emmanuel Bourg