0
votes

I have a multi module project. If i run the command mvn clean followed by mvn package then everything works fine. However If i use command mvn clean package I start getting error.

In dependency pom, I am installing file to localrepo and this goal is tied to clean phase. The jars installed to localrepo (during clean phase) will be needed in package phase.

If I run mvn clean first then, artifacts are created successfully in localrepo. However when I run mvn clean package, localrepo is empty.

Am I doing something wrong? Does maven change the order of execution of arguments i.e. mvn clean package won't enforce the clean to be run before package?

Project Structure:

Parent

--- application

--- dependency

Dependency pom

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-install-plugin</artifactId>
            <version>2.5.2</version>
            <executions>
                <execution>
                    <id>add-myjar</id>
                    <phase>clean</phase>
                    <configuration>
                        <file>D:/myjar.jar</file>
                        <repositoryLayout>default</repositoryLayout>
                        <groupId>com.xyz</groupId>
                        <artifactId>myjar</artifactId>
                        <version>1.0</version>
                        <packaging>jar</packaging>
                        <generatePom>true</generatePom>
                        <localRepositoryPath>D:/localrepo</localRepositoryPath> 
                    </configuration>
                    <goals>
                        <goal>install-file</goal>
                    </goals>
                </execution>
            </plugin>
        </plugins>
<build/>

parent pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.cadence</groupId>
  <artifactId>maven</artifactId>
  <version>1.0</version>
  <packaging>pom</packaging>

  <name>maven</name>

  <modules>   
    <module>dependency</module>
   <!-- <module>application</module> -->
  </modules>

  <properties>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>    
  </properties>
</project>

(Application pom is not needed as error is coming in dependency module.)

Error log: (The error is straightforward - as running mvn clean package did not install a jar in localrepo so that jar can't be found. I am not sure attaching these logs will do any good as these show the after effects of the actual problem i.e. mvn clean package is not running the install goal tied to clean phase.)

[INFO] Error stacktraces are turned on. [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] maven
[pom] [INFO] dependency
[jar] [INFO] [INFO] -------------------------< com.xyz:maven

-------------------------- [INFO] Building maven 1.0 [1/2] [INFO] --------------------------------[ pom ]--------------------------------- [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ maven --- [INFO] [INFO] -----------------------< com.xyz:dependency >----------------------- [INFO] Building dependency 1.0
[2/2] [INFO] --------------------------------[ jar ]--------------------------------- Downloading from local-maven-repo: file:///D:/localrepo/com/xyz/myjar/1.0/myjar-1.0.pom [WARNING] The POM for com.xyz:myjar:jar:1.0 is missing, no dependency information available Downloading from local-maven-repo: file:///D:/localrepo/com/xyz/myjar3/1.0/myjar3-1.0.pom [WARNING] The POM for com.xyz:myjar3:jar:1.0 is missing, no dependency information available Downloading from local-maven-repo: file:///D:/localrepo/com/xyz/myjar2/1.0/myjar2-1.0.pom [WARNING] The POM for com.xyz:myjar2:jar:1.0 is missing, no dependency information available Downloading from local-maven-repo: file:///D:/localrepo/com/xyz/myjar/1.0/myjar-1.0.jar Downloading from local-maven-repo: file:///D:/localrepo/com/xyz/myjar2/1.0/myjar2-1.0.jar Downloading from local-maven-repo: file:///D:/localrepo/com/xyz/myjar3/1.0/myjar3-1.0.jar [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] maven 1.0 .......................................... SUCCESS [ 0.212 s] [INFO] dependency 1.0 ..................................... FAILURE [ 2.874 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.310 s [INFO] Finished at: 2018-06-12T12:23:25+05:30 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal on project dependency: Could not resolve dependencies for project com.xyz:dependency:jar:1.0: The following artifacts could not be resolved: com.xyz:myjar:jar:1.0, com.xyz:myjar3:jar:1.0, com.xyz:myjar2:jar:1.0: Could not find artifact com.xyz:myjar:jar:1.0 in local-maven-repo (file:///D:/localrepo) -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project dependency: Could not resolve dependencies for project com.xyz:dependency:jar:1.0: The following artifacts could not be resolved: com.xyz:myjar:jar:1.0, com.xyz:myjar3:jar:1.0, com.xyz:myjar2:jar:1.0: Could not find artifact com.xyz:myjar:jar:1.0 in local-maven-repo (file:///D:/localrepo) at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies (LifecycleDependencyResolver.java:269) at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies (LifecycleDependencyResolver.java:147) at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved (MojoExecutor.java:246) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:200) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290) at org.apache.maven.cli.MavenCli.main (MavenCli.java:194) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:606) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356) Caused by: org.apache.maven.project.DependencyResolutionException: Could not resolve dependencies for project com.xyz:dependency:jar:1.0: The following artifacts could not be resolved: com.xyz:myjar:jar:1.0, com.xyz:myjar3:jar:1.0, com.xyz:myjar2:jar:1.0: Could not find artifact com.xyz:myjar:jar:1.0 in local-maven-repo (file:///D:/localrepo) at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve (DefaultProjectDependenciesResolver.java:208) at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies (LifecycleDependencyResolver.java:243) at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies (LifecycleDependencyResolver.java:147) at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved (MojoExecutor.java:246) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:200) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290) at org.apache.maven.cli.MavenCli.main (MavenCli.java:194) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:606) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356) Caused by: org.eclipse.aether.resolution.DependencyResolutionException: The following artifacts could not be resolved: com.xyz:myjar:jar:1.0, com.xyz:myjar3:jar:1.0, com.xyz:myjar2:jar:1.0: Could not find artifact com.xyz:myjar:jar:1.0 in local-maven-repo (file:///D:/localrepo) at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies (DefaultRepositorySystem.java:355) at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve (DefaultProjectDependenciesResolver.java:202) at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies (LifecycleDependencyResolver.java:243) at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies (LifecycleDependencyResolver.java:147) at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved (MojoExecutor.java:246) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:200) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290) at org.apache.maven.cli.MavenCli.main (MavenCli.java:194) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:606) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356) Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: The following artifacts could not be resolved: com.xyz:myjar:jar:1.0, com.xyz:myjar3:jar:1.0, com.xyz:myjar2:jar:1.0: Could not find artifact com.xyz:myjar:jar:1.0 in local-maven-repo (file:///D:/localrepo) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver.java:422) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver.java:224) at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies (DefaultRepositorySystem.java:338) at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve (DefaultProjectDependenciesResolver.java:202) at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies (LifecycleDependencyResolver.java:243) at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies (LifecycleDependencyResolver.java:147) at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved (MojoExecutor.java:246) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:200) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290) at org.apache.maven.cli.MavenCli.main (MavenCli.java:194) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:606) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356) Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact com.xyz:myjar:jar:1.0 in local-maven-repo (file:///D:/localrepo) at org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed (ArtifactTransportListener.java:48) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:365) at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run (RunnableErrorForwarder.java:75) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:615) at java.lang.Thread.run (Thread.java:744) [ERROR] [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/DependencyResolutionException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn -rf :dependency The system cannot find the path specified.

1
Can you show us the error?Rcordoval
@Rcordoval sorry, updated the error stacktryingToLearn

1 Answers

0
votes

Use mvn install (if specified jars are maven projects ) to install the following jars in your local repo which are actually missing. You can also explicitly copy them to .m2/repository

Failed to execute goal on project dependency: Could not resolve dependencies for project com.xyz:dependency:jar:1.0: The following artifacts could not be resolved: com.xyz:myjar:jar:1.0, com.xyz:myjar3:jar:1.0, com.xyz:myjar2:jar:1.0: Could not find artifact com.xyz:myjar:jar:1.0 in local-maven-repo (file:///D:/localrepo) -> [Help 1]

Use https://cwiki.apache.org//confluence/display/MAVEN/DependencyResolutionException as suggested by the maven itself to resolve dependencies

Add the configurations for package also if your default repo is D://myRepo

<phase>package</phase>
                    <configuration>
                        <file>D:/myjar.jar</file>
                        <repositoryLayout>default</repositoryLayout>
                        <groupId>com.xyz</groupId>
                        <artifactId>myjar</artifactId>
                        <version>1.0</version>
                        <packaging>jar</packaging>
                        <generatePom>true</generatePom>
                        <localRepositoryPath>D:/localrepo</localRepositoryPath> 
                    </configuration>