使用Maven包

时间:2015-04-11 05:40:37

标签: java maven

对于我参与过的所有Java项目,我已经使用bash javacjava编写了构建脚本。然而,对于我最近的项目,我想我会潜入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!");
    }
}
  • 我是否必须以某种方式在我的pom.xml中定义子包?
  • 如果没有,为什么maven会给我一个构建错误?

3 个答案:

答案 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;就像来自命令提示符的命令一样,理想情况下,如果没有任何更改,您不应该为上述目录结构收到错误。