Имя пакета без main.java в maven

Я разрабатываю свой проект в Eclipse со стандартным макетом каталога Maven. Источники находятся в каталоге src/main/java/com/mycompany. И нужно поставить исходные классы в пакет main.java.com.mycompany. Когда я создаю исполняемый jar файл, я должен определить основной класс в Manifest.MF, например:

    Main-Class: main.java.com.mycompany.MyMainClass

Но я видел во многих примерах (например, настройку атрибута mainClass в maven-assembly-plugin или maven-jar-plugin), что имена классов указаны без main.java. Я просто хочу иметь

    Main-Class: com.mycompany.MyMainClass

Я не могу понять, как я могу это достичь, потому что я полностью новичок в Maven.

Ответы

Ответ 1

Макет каталога по умолчанию Maven отличается от макета, который использует Eclipse при создании нового проекта Java.

Это на самом деле довольно просто. Когда вы создаете новый проект Java, Eclipse создает в вашей файловой системе папку с именем 'src', где вы должны поместить свой исходный код. Кроме того, Eclipse настраивает эту папку как "исходную папку". Каждая папка, созданная в этой папке, будет представлять собой пакет Java.

То, что хочет Maven, немного отличается. Maven любит, чтобы у вас была папка src/main/java с подпапкой "java", настроенной как исходная папка. Следовательно, все папки, созданные в этой папке java, будут представлять пакеты Java.

Вы можете управлять своими исходными папками в Eclipse из свойств проекта. Щелкните правой кнопкой мыши ваш проект, выберите "путь сборки → настроить путь сборки". Во всплывающем окне откройте вкладку "источник". Теперь удалите 'src' в качестве исходной папки и замените его на 'src/main/java'.

Теперь Eclipse распознает ваши пакеты как com.mycompany, а не main.java.com.mycompany.

Я всегда использую плагин maven-eclipse для создания моего проекта eclipse и файлов classpath из строки commmand. Я не большой поклонник m2e.

Ответ 2

Вы также можете попробовать обновить проект maven. Щелкните правой кнопкой мыши проект > Maven > Обновить проект Maven.

Ответ 3

Используйте m2e, если вы используете eclipse. Рабочее пространство eclipse настроено неправильно для проекта maven