我继承了一个巨大的maven java项目,但无法编译它。
mvn compile
它告诉我它找不到一个类,即使它就在本地仓库中。
Failed to execute goal org.codehaus.enunciate:maven-enunciate-plugin:1.25:assemble (default) on project VCWH_Core_QueryService: Execution default of goal org.codehaus.enunciate:maven-enunciate-plugin:1.25:assemble failed: A required class was missing while executing org.codehaus.enunciate:maven-enunciate-plugin:1.25:assemble: com/sun/mirror/apt/AnnotationProcessorFactory
下面是 pom.xml 片段,告诉它要查找的位置:
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.7</version>
</dependency>
果然,tools-1.7.jar 和 tools-1.7.pom 位于本地存储库中
\.m2\repository\com\sun\tools\1.7
如果我看罐子里面jar tf tools-1.7.jar
我可以看到
班级
com/sun/mirror/apt/AnnotationProcessorFactory.class
我还清除了本地存储库中的 sun 文件夹,并在 NetBeans 中执行了“清理和构建”,并观察了 sun 文件夹返回到我的本地存储库中,因此我知道与远程存储库的连接良好。
为什么找不到呢?
与您用于依赖项的坐标相比,jar 文件位于错误的文件夹中。 Maven 不会查找您的位置。正确的路径是 .m2/repository/com/sun/mirror/apt/apt-mirror-api/0.1/apt-mirror-api-0.1.jar。
您创建的本地存储库无效。我建议改为使用像 Nexus 这样的存储库管理器,并将 jar 上传到那里,然后让 Maven 从那里下载。这样您就可以创建 pom 文件,并且与您使用的 GAV 坐标相比,结构将自动正确。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)