Syl*_*dis 3 java eclipse maven
我正在使用 Eclipse Mars (4.5) 和 Maven 3.3.3。
最近,我对一个项目 Java 8 (SE) 进行了 Maven 更新,突然,Eclipse 不希望我的pom.xml<packaging>jar</packaging>中的有效,而是希望我将打包更改为pom。为什么我不能把它留在jar中?
此外,在概述中,封装选择被禁用。
当从控制台运行 Maven(带有 jar 打包)时,这就是我得到的:
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] Child module C:\Users\Me\workspace\MyProject\? of C:\Users\Me\workspace\MyProject\pom.xml does not exist @
[ERROR] 'packaging' with value 'jar' is invalid. Aggregator projects require 'pom' as packaging. @ line 8, column 13
@
[ERROR] The build could not read 1 project -> [Help 1]
org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[ERROR] Child module C:\Users\Me\workspace\MyProject\? of C:\Users\Me\workspace\MyProject\pom.xml does not exist @
[ERROR] 'packaging' with value 'jar' is invalid. Aggregator projects require 'pom' as packaging. @ line 8, column 13
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:422)
at org.apache.maven.graph.DefaultGraphBuilder.collectProjects(DefaultGraphBuilder.java:419)
at org.apache.maven.graph.DefaultGraphBuilder.getProjectsForMavenReactor(DefaultGraphBuilder.java:410)
at org.apache.maven.graph.DefaultGraphBuilder.build(DefaultGraphBuilder.java:83)
at org.apache.maven.DefaultMaven.buildGraph(DefaultMaven.java:491)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:219)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
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)
[ERROR]
[ERROR] The project MyProject:model:0.2 (C:\Users\Me\workspace\MyProject\pom.xml) has 2 errors
[ERROR] Child module C:\Users\Me\workspace\MyProject\? of C:\Users\Me\workspace\MyProject\pom.xml does not exist
[ERROR] 'packaging' with value 'jar' is invalid. Aggregator projects require 'pom' as packaging. @ line 8, column 13
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我吗?至少在重新启用 jar 包装方面。谢谢。
编辑:确实,不知何故我的pom.xml添加了一些新行(我不知道为什么或如何):
<modules>
<module>?</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
这就是导致问题的原因。删除后问题就解决了,谢谢!
因为如果你的 pom 声明了模块,它就是一个“聚合器 POM”——聚合器模块必须是pom. 这就是您在日志中收到以下错误的原因:
[ERROR] 'packaging' with value 'jar' is invalid.
Aggregator projects require 'pom' as packaging. @ line 8, column 13
Run Code Online (Sandbox Code Playgroud)
您可以返回到从 pom.xml 中jar删除所有声明时的状态。<module>
请参阅多模块项目的文档。