maven编译失败

dag*_*agg 26 maven-2

我有一个奇怪的问题 - 在maven构建期间无法读取某些类文件.

  1. 我有一个项目A和项目B.
  2. 项目B取决于项目A目标JAR文件.

在项目B编译期间,它无法在项目AJAR文件中读取lib - 尽管指向它的部分是完美的.

我还检查并验证了maven脚本,这是完美的.

错误:

[INFO] Compiling 137 source files to V:\dhs_tss_build_view\dhs_tssproject\tss\tsscommon-server\target\classes
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure

V:/dhs_tss_build_view/dhs_tssproject/tss/tsscommon-server/src/main/java/us/mn/state/dhs/tss/common/oblix/da/wsdl/OblixLoginAc
cess.java:[51,60] cannot find symbol
symbol  : class BusinessException
location: class us.mn.state.dhs.tss.common.oblix.da.wsdl.OblixLoginAccess

V:/dhs_tss_build_view/dhs_tssproject/tss/tsscommon-server/src/main/java/us/mn/state/dhs/tss/common/app/da/ldap/BaseLdapImpl.j
ava:[187,14] cannot find symbol
symbol  : class Phone
location: class us.mn.state.dhs.tss.common.app.da.ldap.BaseLdapImpl

V:/dhs_tss_build_view/dhs_tssproject/tss/tsscommon-server/src/main/java/us/mn/state/dhs/tss/common/app/da/ldap/BaseLdapImpl.j
ava:[204,14] cannot find symbol
symbol  : class Phone
location: class us.mn.state.dhs.tss.common.app.da.ldap.BaseLdapImpl


[INFO] ------------------------------------------------------------------------
[DEBUG] Trace
org.apache.maven.BuildFailureException: Compilation failure
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:579)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330
)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
        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:585)
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure
        at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:516)
        at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114)
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
        ... 16 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 minute 56 seconds
[INFO] Finished at: Mon Oct 19 09:46:53 CDT 2009
[INFO] Final Memory: 11M/20M
[INFO] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

Mic*_*cik 11

我遇到了同样的问题,这就是我建议你修复它的方法:

跑:

mvn dependency:list
Run Code Online (Sandbox Code Playgroud)

并仔细阅读是否有任何警告消息表明对于某些依赖项,将不存在可用的传递依赖项.

如果是,请使用-X标志重新运行它:

mvn dependency:list -X
Run Code Online (Sandbox Code Playgroud)

查看maven抱怨的详细信息(-X标志可能有很多输出)

在我的情况下,依赖maven模块pom.xml存在问题 - 具有托管依赖性.虽然在父pom中定义了托管依赖项的版本,但是Maven无法解决它,并且抱怨在依赖的pom.xml中缺少版本

所以我只是配置了丢失的版本,问题就消失了.

  • 我有同样的问题,按照你的指示,mvn依赖:list返回没有警告消息.还有什么建议? (4认同)

mul*_*lya 7

尝试使用:

mvn clean package install
Run Code Online (Sandbox Code Playgroud)

此命令应该在您本地的maven仓库中安装您的工件.

PS:我看到这是一个老问题,但它可能对将来的某些人有所帮助.


dav*_*vek 2

您可以尝试运行“mvn site”命令并查看您具有哪些传递依赖项,然后解决潜在的冲突(通过在某处省略隐式依赖项)。只是一个猜测(在没有看到你的 pom 信息的情况下很难知道问题是什么)...