Maven 2 maven编译失败
我有一个奇怪的问题——在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] ------
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>