2011-09-12 8 views
1

프로젝트를 빌드 할 때 com.thoughtworks.qdox.parser.ParseException을 얻는 중입니다.maven-plugin-api com.thoughtworks.qdox.parser.ParseException

<packaging>jar</packaging> 

에 : 나는 변경할 때이 오류가 처음 발생

<packaging>maven-plugin</packaging> 

그 전에, 전체 프로젝트를 구축하고 깨끗하게 달렸다. maven-plugin-api는 maven에서 사용할 수있는 최신 버전이므로 "GWT, Maven, Spring - Getting com.thoughtworks.qdox.parser.ParseException: syntax error on Maven Build"당 업그레이드는 작동하지 않습니다. 나는 또한 다운 그레이드를 시도했다. 변경 없음.

예외 :

com.thoughtworks.qdox.parser.ParseException: syntax error @[38,1] in file:/home/blablahbla/MyClass.java 
    at com.thoughtworks.qdox.parser.impl.Parser.yyerror(Parser.java:716) 
    at com.thoughtworks.qdox.parser.impl.Parser.yyparse(Parser.java:826) 
    at com.thoughtworks.qdox.parser.impl.Parser.parse(Parser.java:697) 
    at com.thoughtworks.qdox.JavaDocBuilder.addSource(JavaDocBuilder.java:300) 
    at com.thoughtworks.qdox.JavaDocBuilder.addSource(JavaDocBuilder.java:316) 
    at com.thoughtworks.qdox.JavaDocBuilder.addSource(JavaDocBuilder.java:312) 
    at com.thoughtworks.qdox.JavaDocBuilder$1.visitFile(JavaDocBuilder.java:369) 
    at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:43) 
    at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34) 
    at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34) 
    at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34) 
    at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34) 
    at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34) 
    at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34) 
    at com.thoughtworks.qdox.directorywalker.DirectoryScanner.scan(DirectoryScanner.java:52) 
    at com.thoughtworks.qdox.JavaDocBuilder.addSourceTree(JavaDocBuilder.java:366) 
    at org.apache.maven.tools.plugin.extractor.java.JavaMojoDescriptorExtractor.discoverClasses(JavaMojoDescriptorExtractor.java:628) 
    at org.apache.maven.tools.plugin.extractor.java.JavaMojoDescriptorExtractor.execute(JavaMojoDescriptorExtractor.java:592) 
    at org.apache.maven.tools.plugin.scanner.DefaultMojoScanner.populatePluginDescriptor(DefaultMojoScanner.java:105) 
    at org.apache.maven.plugin.plugin.AbstractGeneratorMojo.execute(AbstractGeneratorMojo.java:171) 
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 
    at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 

POM을 파일 : 문제의

<?xml version="1.0" encoding="UTF-8"?> 
<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>foo.bar</groupId> 
    <artifactId>foobar</artifactId> 
    <packaging>maven-plugin</packaging> 
    <version>1.0.1</version> 
    <name>foobar</name> 
    <properties> 
     <org.springframework.version>3.1.0.M1</org.springframework.version> 
     <org.hibernate.version>3.6.0.Final</org.hibernate.version> 
    </properties> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.0.2</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
        <encoding>UTF-8</encoding> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>org.apache.maven</groupId> 
      <artifactId>maven-plugin-api</artifactId> 
      <version>2.2.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-test</artifactId> 
      <version>${org.springframework.version}</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>${org.hibernate.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.8.2</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.oracle</groupId> 
      <artifactId>ojdbc6</artifactId> 
      <version>11.1.0.7.0</version> 
     </dependency> 
     <dependency> 
      <groupId>postgresql</groupId> 
      <artifactId>postgresql</artifactId> 
      <version>9.0-801.jdbc4</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-io</groupId> 
      <artifactId>commons-io</artifactId> 
      <version>2.0.1</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-cli</groupId> 
      <artifactId>commons-cli</artifactId> 
      <version>1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>foo.bar.internal</groupId> 
      <artifactId>internal-artifact</artifactId> 
      <version>0.1.9-SNAPSHOT</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>1.6.1</version> 
     </dependency> 
    </dependencies> 
</project> 

클래스는 :

import javax.persistence.*; 

@Table(name = "MY_TABLE") 
@SecondaryTables({ 
     @SecondaryTable(name = "MY_TABLE2"), 
     @SecondaryTable(name = "MY_TABLE3"), 
     @SecondaryTable(name = "MY_TABLE4") 
}) 
@Entity 
@NamedQueries({ 
    ... 
}) 
@AttributeOverrides({ // line 37 
//  @AttributeOverride(//line 38 
//    name = "metadataCheckOutFlag", 
//    column = @Column(
//      name = "COMMENTED_OUT_FIELD", 
//      table = "MY_TABLE2" 
//    ) 
//  ), 
}) 
public class MyClass extends SimpleMyClass { 
} 

모든 JPA 주석은 이전에 문제없이 작용했다.

답변

1

글쎄, 나는 이전 버전의 다른 메이븐 플러그인 인 maven-compiler-plugin을 가지고 있었다. 2.3.2으로 업그레이드했을 때 qdox 라이브러리의 새 버전이 다운로드되었으며 2.0.2으로 다시 다운 그레이드를 테스트 한 경우에도 문제가 사라졌습니다. pom.xml의 관련 섹션 :

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>2.3.2</version> 
     <configuration> 
      <source>1.6</source> 
      <target>1.6</target> 
      <encoding>UTF-8</encoding> 
     </configuration> 
    </plugin>