Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义Maven插件不';t在另一个clean项目中使用时解析父POM_Java_Maven_Dependencies_Maven Plugin_Dependency Management - Fatal编程技术网

Java 自定义Maven插件不';t在另一个clean项目中使用时解析父POM

Java 自定义Maven插件不';t在另一个clean项目中使用时解析父POM,java,maven,dependencies,maven-plugin,dependency-management,Java,Maven,Dependencies,Maven Plugin,Dependency Management,我正在尝试在一个全新的系统中使用我的自定义Maven插件。它似乎没有解析自定义Maven插件使用的父POM 我试过几件事,但都不知所措 如有任何见解,将不胜感激。多谢各位 更新 这很奇怪。。。。只有在清理本地存储库(模拟干净的系统,如新开发人员或集成系统)时,才会发生此错误。如果我立即再次运行“mvn-U install”命令(完全不更改命令),那么它将成功构建 这叫“传递依赖”,但我如何找到这样的违规行为 更新 我认为这是Maven中的一个bug。反应堆没有找到父POM,即使它位于同一个项目中

我正在尝试在一个全新的系统中使用我的自定义Maven插件。它似乎没有解析自定义Maven插件使用的父POM

我试过几件事,但都不知所措

如有任何见解,将不胜感激。多谢各位

更新

这很奇怪。。。。只有在清理本地存储库(模拟干净的系统,如新开发人员或集成系统)时,才会发生此错误。如果我立即再次运行“mvn-U install”命令(完全不更改命令),那么它将成功构建

这叫“传递依赖”,但我如何找到这样的违规行为

更新

我认为这是Maven中的一个bug。反应堆没有找到父POM,即使它位于同一个项目中!你们都怎么想

自定义插件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>

    <parent>
        <groupId>my.org</groupId>
        <artifactId>parent-java-with-foundation</artifactId>
        <version>11.1.1.8-SNAPSHOT</version>
        <relativePath></relativePath>
    </parent>

    <groupId>my.org.maven</groupId>
    <artifactId>maven-plugin</artifactId>
    <version>11.1.1.8-SNAPSHOT</version>
    <packaging>maven-plugin</packaging>

</project>

这可能有几个原因。如果父POM不是reactor(=当前构建)的一部分,并且您删除了本地缓存,那么Maven必须在某个地方找到它

如果您有公司范围的存储库,请确保此版本在那里可用。请特别确保您可以下载
快照
版本(一些repo可以禁用该功能,另外您可以配置Maven从不从某些repo下载快照)


如果没有公司范围的存储库,那么首先需要在父项目中运行
mvn install
。Maven不会尝试在硬盘上的任何位置查找丢失的数据块。

父pom必须位于存储库中,使用relativePath的指定位置或默认位置(..\pom.xml)。是吗?它位于公司Nexus存储库中。相对路径在这种情况下没有多大意义。更新了有关可预测性的更多信息。父POM是独立项目还是当前反应堆构建的子模块?它是独立项目。我正在自行部署“my.org:parent-java with-foundation:pom”。使用“my.org.maven:maven插件”的父项目具有相同的父POM。父POM只是一组常见的依赖项和插件执行,如javadoc、单元测试等。。它不是子模块。它完全在公司回购协议中,具有适当的访问权限,并且存在于正确的坐标中。奇怪的是,如果我只是点击并输入(在控制台中)再次触发相同的构建。。它工作得很好!尝试使用
-X
运行
mvn
,以获得调试输出。搜索工件ID;也许你能找到些什么。
[ERROR] Plugin my.org.maven:maven-plugin:11.1.1.8-SNAPSHOT or one of its dependencies could not be resolved: Failed to read artifact descriptor for my.org.maven:maven-plugin:jar:11.1.1.8-SNAPSHOT: Could not find artifact my.org:parent-java-with-foundation:pom:11.1.1.8-SNAPSHOT -> [Help 1] org.apache.maven.plugin.PluginResolutionException: Plugin my.org.maven:maven-plugin:11.1.1.8-SNAPSHOT or one of its dependencies could not be resolved: Failed to read artifact descriptor for my.org.maven:maven-plugin:jar:11.1.1.8-SNAPSHOT
    at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:122)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getPluginDescriptor(DefaultMavenPluginManager.java:146)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getMojoDescriptor(DefaultMavenPluginManager.java:265)
    at org.apache.maven.plugin.DefaultBuildPluginManager.getMojoDescriptor(DefaultBuildPluginManager.java:190)
    at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.setupMojoExecution(DefaultLifecycleExecutionPlanCalculator.java:157)
    at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.setupMojoExecutions(DefaultLifecycleExecutionPlanCalculator.java:144)
    at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateExecutionPlan(DefaultLifecycleExecutionPlanCalculator.java:121)
    at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateExecutionPlan(DefaultLifecycleExecutionPlanCalculator.java:134)
    at org.apache.maven.lifecycle.internal.BuilderCommon.resolveBuildPlan(BuilderCommon.java:92)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    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.ArtifactDescriptorException: Failed to read artifact descriptor for my.org.maven:maven-plugin:jar:11.1.1.8-SNAPSHOT
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:370)
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:217)
    at org.eclipse.aether.internal.impl.DefaultRepositorySystem.readArtifactDescriptor(DefaultRepositorySystem.java:288)
    at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:108)
    ... 25 more
Caused by: org.apache.maven.model.resolution.UnresolvableModelException: Could not find artifact my.org:parent-java-with-foundation:pom:11.1.1.8-SNAPSHOT
    at org.apache.maven.repository.internal.DefaultModelResolver.resolveModel(DefaultModelResolver.java:126)
    at org.apache.maven.model.building.DefaultModelBuilder.readParentExternally(DefaultModelBuilder.java:817)
    at org.apache.maven.model.building.DefaultModelBuilder.readParent(DefaultModelBuilder.java:669)
    at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:307)
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:361)
    ... 28 more
Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Could not find artifact my.org:parent-java-with-foundation:pom:11.1.1.8-SNAPSHOT
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:459)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:262)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:239)
    at org.apache.maven.repository.internal.DefaultModelResolver.resolveModel(DefaultModelResolver.java:122)
    ... 32 more
Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact my.org:parent-java-with-foundation:pom:11.1.1.8-SNAPSHOT
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:449)
    ... 35 more