对于我参与过的所有Java项目,我已经使用bash javac
和java
编写了构建脚本。然而,对于我最近的项目,我想我会潜入Maven。
每当我编译项目时,我都会遇到编译错误,因为包不存在。我没有外部依赖项,但我的应用程序中有子包。
示例结构:
src/
main/
com/
mycompany/
/application
/package1
MyClass.java
/package2
MyClass2.java
App.java
test/
pom.xml
示例类:
MyClass.java
package com.mycompany.application.package1;
public class MyClass{
private MyClass(){}
}
App.java
package com.mycompany.application;
import com.mycompany.application.package1.MyClass;
public class App{
public static void main(String[] args){
System.out.println("It works!");
}
}
答案 0 :(得分:3)
使用Maven,您需要标准化您的项目结构。你只需要src / main /,你应该像src / main / java /
那样默认情况下,Maven将查看src / main / java文件夹中的所有java源/包。
有关项目结构的详细信息,请参阅here。
答案 1 :(得分:2)
您应该将包和类移动到src/main/java
,这是maven中包的根文件夹。
希望它有所帮助!
答案 2 :(得分:0)
如果您已在eclipse中导入项目,请检查您项目的.classpath文件是否有以下条目。
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
有时您需要检查.classpath文件。这个额外的检查对我有用。
你是从命令行执行maven命令吗?如果你执行 - &#39; mvn clean install&#39;就像来自命令提示符的命令一样,理想情况下,如果没有任何更改,您不应该为上述目录结构收到错误。