我有一个maven项目,它实际上构建为多个java项目。项目B包含一个类,它是项目a中类的子类。当我尝试在调试器中运行该类时,当该方法试图从它的父类调用任何功能时,我得到NoSuchMethod错误。
Maven设置被设计为编译每个单独的项目并将其放在Maven存储库中,以便其他项目可以找到它们(它具有依赖性,因此它首先构建预要求项目)。这对于部署来说都很好,但是我不想强迫在eclipse中进行调试的人在每次启动调试器时都要进行maven安装。相反,我尝试将预要求项目添加到适用项目的类路径(构建路径->添加类文件夹)。这行不通。我认为这是由于在我的构建路径中有maven存储库和类路径?但是类文件夹应该被强制解析,更新的类文件夹应该在maven安装之前被解析,对吗?
我如何配置这个工作而不需要每次重新做一个maven安装?
您的pom文件究竟是什么样子的?我经常使用这样的设置:我有一个父Maven项目,它由其他Maven子项目组成。
我将有一个父窗体,看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<groupId>put group id here</groupId>
<artifactId>name of artifact id</artifactId>
<version>0.2.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>example-subproject-1</module>
<module>example-subproject-2</module>
</modules>
</project>
然后,我将在子项目中拥有如下所示的pom文件(假设这是子项目1的pom文件):
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<parent>
<artifactId>artifact id of parent pom</artifactId>
<groupId>group id of parent pom</groupId>
<version>version number of parent pom</version>
</parent>
<groupId>group id</groupId>
<artifactId>artifact id</artifactId>
<packaging>packaging</packaging>
<version>1</version>
<name>put name here</name>
<dependencies>
<dependency>
<groupId>group id of example subproject 2</groupId>
<artifactId>example-subproject-2</artifactId>
<version>version number of example subproject 2</version>
</dependency>
</dependencies>
</project>
当我以这种方式设置时,如果我在根目录中,我可以编译整个项目。如果我只想编译一个特定的目录,我只需要切换到那个目录。确保在dependencies部分中包含所有需要的子项目。
确保您已经安装了m2eclipse插件。
http://eclipse.org/m2e/download/同时,安装m2eclipse-wtp插件
http://marketplace.eclipse.org/content/maven-integration-eclipse-wtp .UUdUhBxwrIU
确保您已将项目创建为"Maven"项目。所以,如果你查看你的"ProjectA->Properties->Builders",你应该会看到一个"Maven Project Builder"。
如果您遵循上述所有步骤,您的项目依赖项应该正确解决,并且您应该没有错误。
如果您仍然有错误,请发布您的eclipse项目结构。