[SOLVED] - но все еще ищет объяснение. Пожалуйста, смотрите внизу вопросКаков правильный способ создания пакета Java из командной строки? (проблема с Maven)
У меня нет большого опыта работы с командной строки или с помощью Maven. Я работаю над учебником из книги. Это утверждают, я должен создать файл Java
src/main/java/com/effectivemaven/chapter01/ExampleAction.java
Что я сделал mkdir
каждый каталог отдельно, т.е. mkdir com
, mkdir effectivemaven
, mkdir chapter01
Я создаю файл .java в каталоге chapter01
.
package com.effectivemaven.chapter01;
import org.slf4j.*;
public class ExampleAction {
final Logger logger = LoggerFactory.getLogger(ExampleAction.class);
public boolean execute() {
logger.info("Example Action Executed.");
return true;
}
}
Когда я mvn compile
, это говорит compiling 1 file to target...
, но когда я смотрю на каталог ТАГЕТ, ничего не создается.
Так что я попытался создать файл другой .java без использования пакетов, только простой
public class Hello {
public static void main(String[] args) {
System.out.println("Hello");
}
}
в каталоге java
, то mvn compile
и он показывает в файле target
.
Итак, я полагаю, что я не создаю пакеты правильно, используя mkdir
, или, возможно, я делаю что-то еще неправильно, о котором я не знаю.
Так что, в основном, я просто хочу знать, что это правильный способ создания пакета из командной строки? И если я делаю это правильно, каковы могут быть другие возможные причины:
.class
не создается вtarget
?
EDIT дерево
first-webapp
src
main
java
Hello.java
com
effectivemaven
chapter01
ExampleAction.java
target
classes
Hello.class
pom.xml
Команда работает с C:\Maven Book\first-webapp>
C:\Maven Book\first-webapp>mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building first-webapp Maven Webapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ first-weba
pp ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources,
i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ first-webapp
---
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. b
uild is platform dependent!
[INFO] Compiling 2 source files to C:\Maven Book\first-webapp\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.667s
[INFO] Finished at: Sun Jan 12 00:09:49 PST 2014
[INFO] Final Memory: 11M/111M
[INFO] ------------------------------------------------------------------------
C:\Maven Book\first-webapp>
EDIT pom.XML в соответствии с просьбой
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.underdogdevs.webapp</groupId>
<artifactId>first-webapp</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>first-webapp Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
</dependencies>
<build>
<finalName>first-webapp</finalName>
</build>
</project>
Кстати, это веб-приложение, которое я создал с помощью следующей команды
mvn archetype-generate -DgroupId=com.underdogdevs.webapp -DartifactId=first-webapp -DarchetypeArtifactid=maven-archetype-webapp
[РЕШИТЬ] - но с очень небольшим пониманием - все еще предлагаю коричневые точки для всех, кто может объяснить мне такое поведение. Ниже приведено то, что я сделал
Я получил его для работы. Поскольку я создаю проект с помощью
groupId=com.underdogdevs.webapp
, я попытался сделать пакетcom\underdogdevs\webapp
и создал класс с соответствующей ссылкой на пакет. Это поставило проблему. Появится класс. Но я тестировал его еще больше и удалил только что созданный пакет и попытался очистить и скомпилировать только с исходной структурой пакета, но файл снова появился в исходной структуре пакета. Я понятия не имею, почему это происходит. У любого есть идеи?
Можете ли вы показать вывод 'tree' или аналогичного, и' ls -la target/'из корневого каталога проекта? – chrylis
У вас должно получиться сообщение об ошибке при запуске maven. – Henry
пакеты только каталоги для получения дополнительной информации вы можете посмотреть [здесь] [1] [1]: http://stackoverflow.com/questions/10971838/making-a-java-package-in-the -command-line – user1798477