Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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
Maven 2 maven编译失败_Maven 2 - Fatal编程技术网

Maven 2 maven编译失败

Maven 2 maven编译失败,maven-2,Maven 2,我有一个奇怪的问题——在maven构建期间无法读取某些类文件 我有一个项目a和项目B 项目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] ------

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

  • 我有一个项目
    a
    和项目
    B
  • 项目
    B
    取决于项目
    A
    目标JAR文件
  • 在项目
    B
    编译期间,它无法读取项目
    A
    JAR文件中的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] ------------------------------------------------------------------------
    

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

    我猜您的本地maven存储库中的project a jar版本是错误的。这似乎解决了依赖关系,否则我认为maven不会开始编译,但通常这些编译错误意味着版本混淆。尝试对项目a进行
    maven清理安装
    ,看看它是否会改变项目B的某些内容。。。
    另外,有关您的设置的更多信息也可能有用:

    • maven是如何推出的?什么命令?在shell上,在CI服务器上的IDE(是否使用插件)
    • 您使用的是什么maven命令

      • 错误很明显:“找不到符号”。某些依赖项无法解析(您甚至在引用的跟踪中有无法解析的行和列):

        以下是一些需要验证的事项:

        • 检查或重新检查这些类是否在jar A中(与pom中的版本相同)
        • 检查或重新检查B源中的导入语句(应与A中的类包匹配)
        • 检查或重新检查B的pom.xml,尤其是对A(其版本)的依赖关系声明
        • 检查对A的依赖关系是否在B的pom中的某个位置被传递排除
        • 快照是快照依赖项吗?如果否,请从本地存储库中删除并重新生成
        Maven工作正常,您在某处出错。

        尝试使用:

        mvn clean package install
        
        这个命令应该在本地maven repo中安装您的工件


        PS:我知道这是一个老问题,但它可能对将来的人有所帮助。

        这可能是由于堆内存不足

        这听起来很奇怪,但试试看,它可能会奏效:

        export MAVEN_OPTS='-Xms384M -Xmx512M -XX:MaxPermSize=256M'
        

        来源:)

        我也遇到了同样的问题,我建议您解决这个问题:

        运行:

        如果有任何警告消息表明某些依赖项没有可用的可传递依赖项,请仔细阅读

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

        mvn dependency:list -X
        
        要查看详细信息,maven在抱怨什么(对于-X标志可能有很多输出)

        在我的例子中,依赖maven模块pom.xml中有一个问题,即托管依赖。虽然在父pom中定义了托管依赖项的版本,但Maven无法解决该版本,并抱怨在dependent pom.xml中缺少版本


        所以我只是配置了缺少的版本,问题就消失了。

        我也遇到了同样的问题

        如何修复-将以下属性添加到
        pom.xml

        <properties>
            <!--  compiler settings -->
            <maven.compiler.source>1.6</maven.compiler.source>
            <maven.compiler.target>1.6</maven.compiler.target>
        </properties>        
        
        
        1.6
        1.6
        
        在你的类中,maven是一些依赖项,它属于某个jar的try right。这些jar用maven命令重新构建,我使用这个命令
        mvn clean install-DskipTests=true
        在这种情况下,当类中的一些符号丢失时,应该可以工作

        一,/

        二,/ 运行eclipse并打开项目

        三,/

        它的工作

        我也有同样的问题(即使该项目在Eclipse中编译/工作正常),但在使用命令行构建时却没有。
        原因是我没有为mvn使用正确的文件夹结构:“src/main/java/com”等。默认情况下,它会查看这些文件夹(我使用的是“/scr/main/com”等,这会导致问题)。

        如果您的依赖关系与我的一样好(请检查mvn依赖关系:列表),那么这就是maven的小故障, 如果您使用的是Eclipse,请执行以下操作:

      • 右键单击项目>Maven>更新项目
      • 检查除脱机以外的所有内容
      • 你应该很好


        我不知道等效的mvn命令,如果有人可以发布它们,它们可能会很有用。

        在多模块项目中很容易出现这种错误。例如,如果您对模块A、B和C进行了更改,但随后尝试只编译模块B,则容易发生此错误。假设模块B依赖于模块a。由于只编译了模块B,因此模块a中的类文件现在已过时,并且可能无效


        如果这是问题的本质,编译所有模块(或按照适当的层次依赖顺序编译模块)可以解决此错误。

        我也遇到过类似的问题,在过度搜索后从未在web上找到任何内容

        我查看了
        pom.xml
        文件,并在依赖项中更改了
        文件的范围:
        测试
        编译

        以前我只是在测试中使用它,但是我改变了项目的结构,我从来都不知道我需要改变它

        测试:此范围表示不需要依赖项 应用程序的正常使用,仅适用于测试 编译和执行阶段

        编译:这是默认范围,如果未指定,则使用。编撰 依赖项在项目的所有类路径中都可用。 此外,这些依赖关系将传播到依赖项目

        以下是来自Apache Maven文档的参考:

        它还影响依赖项的顺序。我也有同样的问题。基本上,我必须首先进行
        范围测试<
        
        mvn dependency:list -X
        
        <properties>
            <!--  compiler settings -->
            <maven.compiler.source>1.6</maven.compiler.source>
            <maven.compiler.target>1.6</maven.compiler.target>
        </properties>        
        
         mvn eclipse:clean
            mvn eclipse:eclipse -Dwtpversion=2.0
        
        mvn package
        
        [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project entry-api: Compilation failure: Compilation failure:
        
        package com.foo.entry.common.domain does not exist
        package com.foo.entry.common.model does not exist
        package com.foo.entry.common.service does not exist
        package com.foo.entry.common.util does not exist
        
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>