I would have tried the -llr command line option On 13 November 2015 at 11:58, Jörg Schaible <joerg.schai...@swisspost.com> wrote:
> Hi folks, > > we have a requirement for a source code escrow > (https://en.wikipedia.org/wiki/Source_code_escrow). Therefore we intended > provide our source code with a local Maven repository that can be used for > offline builds. However, all attempts have been failed so far. > > What have we done: > 1/ Checked out the tagged versions of our software > 2/ Build it with M339 (mvn package) using an empty local Maven repo > As result all released artifacts are recreated in the target directories - > so far so good. > > As next step we took a copy of the local repo and of the cleaned sources to > a new location and created naively a settings.xml containing two entries > only: > - the location to the copy of the local repo > - offline set to true > > We use JDK 1.7 and tried the different M3 versions (3.0.5, 3.1.1, 3.2.5, > 3.3.9): > > First try with Maven 3.0.5: > ============= %< ================ > jos@josoo /tmp/kde-jos/offline $ mvn -s settings.xml -f source/pom.xml > clean > package > [INFO] Scanning for projects... > [ERROR] The build could not read 1 project -> [Help 1] > [ERROR] > [ERROR] The project ip.users:ip-users-ear:4.4.1 (/tmp/kde- > jos/offline/source/ip.users/ip-users-ear/pom.xml) has 1 error > [ERROR] Unresolveable build extension: Error resolving version for > plugin 'org.apache.maven.plugins:maven-eclipse-plugin' from the > repositories > [local (/tmp/kde-jos/offline/local.repo), central > (http://repo.maven.apache.org/maven2)]: Plugin not found in any plugin > repository -> [Help 2] > [ERROR] > [ERROR] To see the full stack trace of the errors, re-run Maven with the -e > switch. > [ERROR] Re-run Maven using the -X switch to enable full debug logging. > [ERROR] > [ERROR] For more information about the errors and possible solutions, > please > read the following articles: > [ERROR] [Help 1] > http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException > [ERROR] [Help 2] > > http://cwiki.apache.org/confluence/display/MAVEN/PluginVersionResolutionException > ============= %< ================ > $ ls -l local.repo/org/apache/maven/plugins/maven-eclipse-plugin/ > drwxr-xr-x 2 jos jos 4096 Nov 13 09:47 2.10 > ============= %< ================ > > For whatever reason, it does not accept the maven-eclipse-plugin in the > local repo (although it is just declared, but not used in the build > itself). > (And yes, it has no sticky version, the newest might always create the best > project...) > > Try with Maven 3.1.1/3.2.5/3.3.9 (all the same): > ============= %< ================ > $ mvn -s settings.xml -f source/pom.xml clean package > [INFO] Scanning for projects... > [ERROR] The build could not read 1 project -> [Help 1] > [ERROR] > [ERROR] The project builder:source:x-SNAPSHOT (/tmp/kde- > jos/offline/source/pom.xml) has 1 error > [ERROR] Non-resolvable parent POM: Cannot access central > (http://repo.maven.apache.org/maven2) in offline mode and the artifact > com.scalaris.buildsystem.maven2:master:pom:274 has not been downloaded from > it before. and 'parent.relativePath' points at no local POM @ line 6, > column > 13 -> [Help 2] > [ERROR] > [ERROR] To see the full stack trace of the errors, re-run Maven with the -e > switch. > [ERROR] Re-run Maven using the -X switch to enable full debug logging. > [ERROR] > [ERROR] For more information about the errors and possible solutions, > please > read the following articles: > [ERROR] [Help 1] > http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException > [ERROR] [Help 2] > http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException > ============= %< ================ > $ ls -l local.repo/com/scalaris/buildsystem/maven2/master > drwxr-xr-x 2 jos jos 4096 Nov 13 09:47 274 > ============= %< ================ > > The "unresolvable" parent is obviously available in the local repo. > > As next step we added an active profile to settings.xml with repository > definitions using the same ids we had originally, but with a URL pointing > to > nowhere (file:///). This makes no difference for M305, but all versions > 3.1.1 and higher start to accept the artifacts available in the local > repository ... unless the first project in the build uses the maven- > assembly-artifact: > > ============= %< ================ > [ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly- > plugin:2.4.1:single (create-assemblies) on project fileupload-app: Failed > to > create assembly: Unable to resolve dependencies for assembly 'app': Failed > to resolve dependencies for assembly: Missing: > [ERROR] ---------- > [ERROR] 1) commons-codec:commons-codec:jar:1.6 > [ERROR] > [ERROR] Try downloading the file manually from the project website. > [ERROR] > [ERROR] Then, install it using the command: > [ERROR] mvn install:install-file -DgroupId=commons-codec - > DartifactId=commons-codec -Dversion=1.6 -Dpackaging=jar > -Dfile=/path/to/file > [ERROR] > [ERROR] Alternatively, if you host your own repository you can deploy the > file there: > [ERROR] mvn deploy:deploy-file -DgroupId=commons-codec > -DartifactId=commons- > codec -Dversion=1.6 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] - > DrepositoryId=[id] > [ERROR] > [ERROR] Path to dependency: > [ERROR] 1) com.essencio.components.fileupload:fileupload-app:jar:4.4.0 > [ERROR] 2) com.scalaris.commons:scalaris-commons-run:jar:2.2.1 > [ERROR] 3) com.scalaris.commons:scalaris-commons-lang:jar:2.6.1 > [ERROR] 4) commons-codec:commons-codec:jar:1.6 > [...] > ============= %< ================ > > Again, all the "unavailable" artifacts are already in the local repo. > > Finally, using the -llr flag, the build with M311/M325 succeeds, but fails > still with M339, because a 3rd party plugin cannot find its dependencies > now: > > ============= %< ================ > [ERROR] Failed to execute goal org.primefaces.extensions:resources- > optimizer-maven-plugin:1.0.0:optimize (optimize) on project ip-wwpbase: > Execution optimize of goal org.primefaces.extensions:resources-optimizer- > maven-plugin:1.0.0:optimize failed: Plugin > org.primefaces.extensions:resources-optimizer-maven-plugin:1.0.0 or one of > its dependencies could not be resolved: The following artifacts could not > be > resolved: org.apache.maven:maven-model:jar:3.1.0, org.apache.maven:maven- > artifact:jar:3.1.0, org.apache.maven:maven-settings:jar:3.1.0, > org.apache.maven:maven-settings-builder:jar:3.1.0, org.apache.maven:maven- > repository-metadata:jar:3.1.0, org.apache.maven:maven-model- > builder:jar:3.1.0, org.apache.maven:maven-aether-provider:jar:3.1.0, > org.codehaus.plexus:plexus-classworlds:jar:2.4.2: Cannot access scalaris- > plugin-release (file:///) in offline mode and the artifact > org.apache.maven:maven-model:jar:3.1.0 has not been downloaded from it > before. -> [Help 1] > ============= %< ================ > > Again, all the "unavailable" artifacts are already in the local repo. It > seems M339 is missing some compatibility layer. > > However, offline builds are very hard to accomplish. They are definitely no > fun. > > Cheers, > Jörg > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > For additional commands, e-mail: users-h...@maven.apache.org > >