2013-07-24 3 views
3

ДА Я сделал mvn clean.Javac не компилирует классы для целевой папки

Пробовал в Maven 3.1.0, 3.0.4 и 3.0.3

построю мультимодуля Maven проекта (МВН установка) не на каком-то модуле. Причина в том, что последний модуль был построен с УСПЕХОМ, но на самом деле баночка пуста. И тогда следующий модуль не сможет найти классы, которые он должен увидеть.

[INFO] Reactor Summary: 
[INFO] 
[INFO] myproject ......................................... SUCCESS [0.309s] 
[INFO] myproject-service ................................. SUCCESS [0.011s] 
[INFO] myproject-service-api ............................ SUCCESS [1.242s] 
[INFO] myproject-service-spi ............................ FAILURE [1.422s] 
[INFO] myproject-datap-lib-impl .................. SKIPPED 
... 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 19.746s 
[INFO] Finished at: Wed Jul 24 17:30:57 EEST 2013 
[INFO] Final Memory: 62M/919M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project myproject-service-spi: Compilation failure: Compilation failure: 
[ERROR] C:\dev\mything\myproject\trunk-checkout2\service\spi\src\main\java\org\myself\service\spi\validation\fake\AbstractConfigurableFakeDetector.java:[12,55] error: package org.myself.service.validation.fake does not exist 

Вот полный отладочный вывод из работы mvn -X clean install -amd -Dmaven.test.skip=true > build.loghttp://nopaste.info/7f07571993.html

В IntelliJ IDEA все это выглядит хорошо, класс существует.

Не только сгенерированная банка пуста, но и служба папок/api/target/classes.

Моего файл П для сервиса-апите очень прост, так же как и другие, которые не работают:

<?xml version="1.0" encoding="UTF-8"?> 
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" 
     xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <modelVersion>4.0.0</modelVersion> 

    <parent> 
     <artifactId>myparent</artifactId> 
     <groupId>my.parent</groupId> 
     <version>myversion</version> 
    </parent> 

    <groupId>myproject.service.api</groupId> 
    <artifactId>myproject-service-api</artifactId> 

    <dependencies> 
     ... some local and external dependencies 
    </dependencies> 

    <properties> 
    </properties> 
</project> 

нет Maven плагин здесь.

Я не думаю, что у меня есть циклическая зависимость, потому что Maven 3 обнаружит это.

UPDATE

Я теперь получили его вниз к этому: простой МВН компиляции на модуле, который создает пустую банку дает мне этот выход в IntelliJ IDEA:

[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building myproject-service-api 4.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ myproject-service-api --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] skip non existing resourceDirectory C:\myproject\trunk-checkout2\service\api\src\main\resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ myproject-service-api --- 
[INFO] Changes detected - recompiling the module! 
[INFO] Compiling 217 source files to C:\myproject\trunk-checkout2\service\api\target\classes 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 3.908s 
[INFO] Finished at: Wed Jul 24 21:56:49 EEST 2013 
[INFO] Final Memory: 20M/232M 
[INFO] ------------------------------------------------------------------------ 

И сразу после запуска что папка C: \ myproject \ trunk-checkout2 \ service \ api \ target \ classes пуста. Таким образом, 217 Java-классов обнаружены, maven говорит, что он компилирует их и помещает их в мою целевую папку, но это не так.

Update 2

Я сравнил выход mvn -X compile модуля, который работает по сравнению с этим (помните, что все закончится в BUILD УСПЕХА, но это один имеет пустую целевую папку). Существует различие: в случае сбоя перечислены все java-файлы как «обнаружен обнаруженный источник».

[DEBUG] Using compiler 'javac'. 
[DEBUG] Source directories: [C:\myproject\trunk-checkout2\service\api\src\main\java] 
[DEBUG] Classpath: [C:\myproject\trunk-checkout2\service\api\target\classes 
... all the dependency jars 
[DEBUG] Output directory: C:\myproject\trunk-checkout2\service\api\target\classes 
[DEBUG] CompilerReuseStrategy: reuseCreated 
[DEBUG] useIncrementalCompilation enabled 
[DEBUG] Stale source detected: C:\dev\myproject\trunk-checkout2\service\api\src\main\java\my\Class.java 
... listing all 217 classes 
[INFO] Changes detected - recompiling the module! 
[DEBUG] Classpath: 
[DEBUG] C:\myproject\trunk-checkout2\service\api\target\classes 
... all the dependency jars 
[DEBUG] Source roots: 
[DEBUG] C:\myproject\trunk-checkout2\service\api\src\main\java 
[DEBUG] Command line options: 
[DEBUG] -d (...) -g -nowarn -target 1.6 -source 1.6 -encoding UTF-8 
[DEBUG] incrementalBuildHelper#beforeRebuildExecution 
[INFO] Compiling 217 source files to C:\myproject\trunk-checkout2\service\api\target\classes 
[DEBUG] incrementalBuildHelper#afterRebuildExecution 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 4.060s 
[INFO] Finished at: Wed Jul 24 23:16:37 EEST 2013 
[INFO] Final Memory: 22M/328M 
[INFO] ------------------------------------------------------------------------ 

Я видел этот отчет об ошибке https://jira.codehaus.org/browse/MCOMPILER-205 и у меня есть package-info.java файлы в этом модуле, но я пытался заранее 3 компилятора плагин, тот же самый результат. И я пробовал с аннотацией, как описано там, и не повезло. Поэтому я не думаю, что это тот же случай.

У меня нет открытого статического void main, поэтому эта ошибка Workaround for javac compilation order bug in maven не может быть такой.

UPDATE 3

Там есть прерывания в JAVAC, без предварительного уведомления (-verbose включен). Всего 1 класс работает, все 217 терпят неудачу. Поэтому, я думаю, я должен попытаться найти причину этого и т. Д. ... снова опубликует.

ответ

0

Причина была связана с ошибкой в ​​javac. Некоторое допустимое синтаксис, с которым он не справился. Тогда он породил пустую банку и так далее.

+0

Можете ли вы опубликовать синтаксис проблемы и версию java? –

0

Сначала в вашем выводе журнала есть несколько намеков о таких вещах, как ${version}, которые вы должны исправить, кроме того, есть и другие предупреждения о повторяющихся определениях зависимостей и т.д.

я принял более глубокий взгляд в выход журнала:

[ERROR] C:devmythingmyprojecttrunk-checkout2servicespisrcmainjavaorgmyselfservicespivalidationfakeAbstractConfigurableFakeDetector.java:[12,55] error: package org.myself.service.validation.fake does not exist 
[ERROR] C:devmythingmyprojecttrunk-checkout2servicespisrcmainjavaorgmyselfservicespivalidationfakeAbstractConfigurableFakeDetector.java:[13,55] error: package org.myself.service.validation.fake does not exist 
[ERROR] C:devmythingmyprojecttrunk-checkout2servicespisrcmainjavaorgmyselfservicespivalidationfakeAbstractConfigurableFakeDetector.java:[82,14] error: cannot find symbol 
[ERROR] symbol: class SimpleValidationResult 
    location: class AbstractConfigurableFakeDetector 
C:devmythingmyprojecttrunk-checkout2servicespisrcmainjavaorgmyselfservicespivalidationfakeAbstractConfigurableFakeDetector.java:[106,66] error: cannot find symbol 
[ERROR] symbol: class FakeType 
    location: class AbstractConfigurableFakeDetector 
C:devmythingmyprojecttrunk-checkout2servicespisrcmainjavaorgmyselfservicespivalidationfakeAbstractConfigurableFakeDetector.java:[97,8] error: cannot find symbol 
[ERROR] symbol: class SimpleValidationResult 
    location: interface SomethingThatReturnsValidationResult 
C:devmythingmyprojecttrunk-checkout2servicespisrcmainjavaorgmyselfservicespigenderresultAverageComputedGenderResultCollector.java:[4,46] error: package org.myself.service.gender does not exist 
[ERROR] C:devmythingmyprojecttrunk-checkout2servicespisrcmainjavaorgmyselfservicespigenderresultAverageComputedGenderResultCollector.java:[5,46] error: package org.myself.service.gender does not exist 
[ERROR] C:devmythingmyprojecttrunk-checkout2servicespisrcmainjavaorgmyselfservicespigenderresultAbstractAverageGenderCollector.java:[4,46] error: package org.myself.service.gender does not exist 
[ERROR] C:devmythingmyprojecttrunk-checkout2servicespisrcmainjavaorgmyselfservicespigenderresultAverageComputedGenderResultCollector.java:[31,29] error: cannot find symbol 
[ERROR] symbol: class ComputedGenderResult 
    location: class AverageComputedGenderResultCollector 

, который создает у меня впечатление, что вы используете тестовые классы или можете быть именами пакетов из тестовой области, которые не работают, или вам не хватает зависимости от другого пакета.

+0

эти имена папок, такие как C: devmythingmyprojecttrunk-checkout2servicespis были искалечены nopaste (хотя я выбрал «plain»). это не проблема. проблема с отсутствующими пакетами/классами именно в том, что они должны быть в пустой банке. –

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