Java Maven 抛出空指针异常
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/23078500/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Maven throws nullpointer exception
提问by Bravo
Good day,
再会,
I have built a project using maven. Throughout this project, I have concluded that one more dependency has to be added for a particular module. I have added this dependency in it's pom file and when I have tried to rebuild the project using maven, a null pointer was thrown.
我已经使用 maven 构建了一个项目。在整个项目中,我得出的结论是,必须为特定模块添加更多依赖项。我在它的 pom 文件中添加了这个依赖项,当我尝试使用 maven 重建项目时,抛出了一个空指针。
Pom files before:
之前的 Pom 文件:
(child pom:)
(孩子pom:)
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
</dependency>
</dependencies>
(main pom:)
(主要的POM:)
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
<dependency>
<groupId>com.solveit.crm.core</groupId>
<artifactId>crm-core</artifactId>
<version>${project.version}</version>
</dependency> //this dependency is for another module, it was
declared at the start of the project
</dependencies>
</dependencyManagement>
Pom files now(which cause nullpointer):
现在的 Pom 文件(导致空指针):
(child pom:)
(孩子pom:)
<dependencies>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
</dependency>
<dependency>
<groupId>com.solveit.crm.data</groupId>
<artifactId>crm-data</artifactId>
</dependency>
</dependencies>
(main pom:)
(主要的POM:)
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
<dependency>
<groupId>com.solveit.crm.core</groupId>
<artifactId>crm-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.solveit.crm.data</groupId>
<artifactId>crm-data</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
Why does maven throw null pointer exception? I am confused right now.
为什么maven会抛出空指针异常?我现在很困惑。
ERROR MESSAGE:
错误信息:
[INFO] Scanning for projects...
[ERROR] Internal error: java.lang.NullPointerException -> [Help 1]
org.apache.maven.InternalErrorException: Internal error: java.lang.NullPointerEx
ception
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:167)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Laun
cher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.jav
a:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(La
uncher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:
356)
Caused by: java.lang.NullPointerException
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:270)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
... 11 more
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[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 rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/InternalErrorE
xception
In eclipse I get:
在日食我得到:
[INFO] Scanning for projects...
[ERROR] The projects in the reactor contain a cyclic reference: Edge between 'Vertex{label='com.solveit.crm.data:crm-data:1'}' and 'Vertex{label='com.solveit.crm.core:crm-core:1'}' introduces to cycle in the graph com.solveit.crm.core:crm-core:1 --> com.solveit.crm.data:crm-data:1 --> com.solveit.crm.core:crm-core:1 -> [Help 1]
[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/ProjectCycleException
Thank you
谢谢
采纳答案by Fabien Thouraud
You have a cyclic reference of dependencies.
您有一个依赖项的循环引用。
It looks like your crm-core project has crm-data in its dependencies and the crm-data project has crm-core in its dependencies.
看起来您的 crm-core 项目的依赖项中有 crm-data,而 crm-data 项目的依赖项中有 crm-core。
Maven can't compile such a case.
Maven 无法编译这种情况。