[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

re: Building maven packages



OK. I tried some more on this so have an update below.

> On Wed, 2 Nov 2016 14:21, Markus Koschany wrote:
> > On 02.11.2016 05:52, Wookey wrote:

> > > Having hacked about a bit it currenty fails with: 
> > > The POM for org.codehaus.mojo:native-maven-plugin:jar:1.0-alpha-7 is missing,
> > > no dependency information available

> > Otherwise someone has to package maven-native-plugin.
> > https://bugs.debian.org/700679

> Well I don't mind doing this if it's not too hard, and I don't have too
> many more layers of java-package rabbit-hole to go :-).


If I run mh_make on the maven-native packages from: 
 http://www.mojohaus.org/maven-native/native-maven-plugin/
 source here:  https://github.com/mojohaus/maven-native/

then if I tell it to include the modules it gets as far as the first
sub-pom and complains that it can't find the dependency: <itself>

The command I ran was:
DEBLICENSE=MIT mh_make -t -d  (and keep hitting return)

This project contains modules. Include all modules?
[Y/n] > 
Analysing maven-native-api/pom.xml...
Dec 29, 2016 2:49:42 PM org.debian.maven.packager.DependenciesSolver resolveDependencies
SEVERE: Error while resolving ./maven-native-api/pom.xml: Dependency not found org.codehaus.mojo.natives:maven-native:pom:1.0-alpha-8
Dec 29, 2016 2:49:42 PM org.debian.maven.packager.DependenciesSolver resolveDependencies
SEVERE: 
org.debian.maven.repo.DependencyNotFoundException: Dependency not found org.codehaus.mojo.natives:maven-native:pom:1.0-alpha-8
						   at org.debian.maven.repo.Repository.registerPom(Repository.java:414)
						   at org.debian.maven.packager.DependenciesSolver.resolveDependencies(DependenciesSolver.java:321)
						   at org.debian.maven.packager.DependenciesSolver.resolveDependencies(DependenciesSolver.java:421)
						   at org.debian.maven.packager.DependenciesSolver.solveDependencies(DependenciesSolver.java:261)
						   at org.debian.maven.packager.DependenciesSolver.main(DependenciesSolver.java:962)

I don't understand this. org.codehaus.mojo.natives:maven-native is the
package that I am trying to package, so why is it depending on itself
and yet also not being able to find itself?

Also, the file maven-native-api/pom.xml does not list maven-native as a dependency. It's a short file that has 3 stanzas of dependencies:
    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-container-default</artifactId>
    </dependency>
  
    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-utils</artifactId>
    </dependency>   

    <dependency>
      <groupId>backport-util-concurrent</groupId>
      <artifactId>backport-util-concurrent</artifactId>
    </dependency>   

the only mention of maven-native is in the <parent> stanza, 

  <parent>
    <groupId>org.codehaus.mojo.natives</groupId>
    <artifactId>maven-native</artifactId>
    <version>1.0-alpha-8</version>
  </parent>

which seems correct, as this is a sub-module. So what's going on? Is
this in fact a bug in mh_make?

Or is this because the sub-module inherits from the top-level .pom and that does list some sefl-dependencies:
      <dependency>
        <groupId>org.codehaus.mojo.natives</groupId>
        <artifactId>maven-native-api</artifactId>
        <version>${project.version}</version>
      </dependency>    

So how is this supposed to work?
And why don't I get the opportunity to say 'ignore this dependency'?


second issue:

I also got the complaint that it can't find:
backport-util-concurrent 
(which I think is this software:
http://mvnrepository.com/artifact/backport-util-concurrent/backport-util-concurrent/3.1
), a "Backport Of JSR 166 For Java 1.2 And 1.3"

Now I see that debian used to have such a package:
https://tracker.debian.org/pkg/backport-util-concurrent
but it's no longer in the archive. And we also have something called:
libconcurrent-java

Am I correct to think that libconcurrent-java should replace the
refernces to backport-util-concurrent? How do I tell mh_make or the
debian maven helper to do this?

Or is it actually an irrelevancy because the java on debian has this
concurrency stuff built-in these days? (Java's versioning is deeply
unhelpful to the casual visitor, and I forget how Java 1.2 and 1.3
relates to java 5,6,7,8,9, and unstable is java 8 now by default,
right?)

(I did try adding it to the
rules/mavenIgnore file but the build fails looking for classes that
seem to come from here so it's not that simple). 

Again clues welcome. I did find the docs for the .pom file format,
which means this is all making a bit more sense now:
https://maven.apache.org/guides/introduction/introduction-to-the-pom.html

Wookey
-- 
Principal hats:  Linaro, Debian, Wookware, ARM
http://wookware.org/


Reply to: