2013-07-08 7 views
2

Я запускаю Maven 3.0.4 в Ubuntu 12.04. У меня есть версия Java 1.7.0_25. Я пытаюсь использовать команду mvn package, но я постоянно работаю в ошибки, которые всегда вдоль линии:Разрешить Maven автоматически создавать каталоги в Ubuntu

Failure executing javac, but could not parse the error: 
javac: directory not found: /......../target/[some folder] 

Я не мог понять, что это было изначально, но теперь понял из некоторых основных Googling, что это потому что каталог назначения должен существовать. Обычно предлагаемый способ справиться с этой проблемой - создать скрипт ant, который сделает это для вас (я думаю).

Однако я понятия не имею, какие папки необходимо создать. Это не мой проект, который я компилирую, просто что-то загрузил. Можно ли использовать сценарий Ant, и если да, то кто-нибудь может указать мне в правильном направлении, поскольку я никогда раньше не использовал скрипт ant, а тем более создал его, и его вполне можно было бы назвать Ubuntu «noob»!

Полный Maven выход по запросу

Справочник является:

flume-sources - containing 
    flume.conf 
    pom.xml 
    src 
     main 
     java 
      com 
      cloudera 
       flume 
       source 
        TwitterSource.java 
        TwitterSourceConstants.java 

Maven ошибка:

[email protected]:~/flume-sources$ mvn package 
[INFO] Scanning for projects... 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building flume-sources 1.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-resources-plugin:2.3:resources (default-resources) @ flume-sources --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] skip non existing resourceDirectory /home/andrew/flume-sources/src/main/resources 
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ flume-sources --- 
[INFO] Compiling 2 source files to /home/andrew/flume-sources/target/classes 
[INFO] ------------------------------------------------------------- 
[ERROR] COMPILATION ERROR : 
[INFO] ------------------------------------------------------------- 
[ERROR] Failure executing javac, but could not parse the error: 
javac: directory not found: /home/andrew/flume-sources/target/classes 
Usage: javac <options> <source files> 
use -help for a list of possible options 

[INFO] 1 error 
[INFO] ------------------------------------------------------------- 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 3.470s 
[INFO] Finished at: Mon Jul 08 12:35:58 BST 2013 
[INFO] Final Memory: 9M/59M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project flume-sources: Compilation failure 
[ERROR] Failure executing javac, but could not parse the error: 
[ERROR] javac: directory not found: /home/andrew/flume-sources/target/classes 
[ERROR] Usage: javac <options> <source files> 
[ERROR] use -help for a list of possible options 
[ERROR] -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 
[email protected]:~/flume-sources$ 
+0

Дополнительная информация из Мейвен был бы полезен. –

ответ

4

Нет, вам не нужно создавать папку вручную или с скриптом муравья.

Если папка target не существует при запуске MVN, это создаст его

Так что я думаю, что у вас есть проблема с разрешениями

Пользователь работает Maven не может создавать папки в/дом/Андрей/водотоки-источники

только в качестве теста, запустите МВН как корень

sudo mvn package 

, если это работает, то это то, что я сказал, и вы потребуется 1) chown папка, чтобы пользователь, запускающий maven, мог создавать в нем папки (rw) или 2) запускать mvn от того же пользователя, которому принадлежит папка (которая, как я предполагаю, andrew)

+0

Флип ради. После почти недели попытки, просто используя sudo работал. Мне никогда не приходило в голову, что у пользователя не будет разрешения, так как «andrew» является главным пользователем системы. Как я могу определить, кто владеет папкой (так как на машине есть только один пользователь, и он должен быть андровым?) –

+1

Просто решил, что один из них. ls -l/directory /. Он принадлежал корню. Спасибо за Ваш ответ! –

+1

Я рекомендую вам фактически не запускать maven как root сейчас, когда вы знаете, в чем проблема. Решение состоит в том, чтобы сменить владельца папки на andrew: 'sudo chown -R andrew/home/andrew/flume-sources' – Hilikus

Смежные вопросы