2017-09-26 105 views
0

我具有以下行家结构:Lombok的进口的Maven模块

parent-module 
|-model-module 
|-model-contributor-module 

model-module我具有与@lombok.Data注明实体。当我在model-module上制作mvn clean install时,一切正常。第二个内部模块model-contributor-module包含依赖项中的model-module。当我尝试在model-contributor-module上执行相同的构建时,我收到错误cannot find symbol

pom.xmlmodel-module

<dependency> 
    <groupId>org.projectlombok</groupId> 
    <artifactId>lombok</artifactId> 
    <scope>provided</scope> 
</dependency> 

而且pom.xmlmodel-contributor-module

<dependency> 
    <groupId>org.projectlombok</groupId> 
    <artifactId>lombok</artifactId> 
    <scope>provided</scope> 
</dependency> 
..... 
<pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.projectlombok</groupId> 
       <artifactId>lombok-maven-plugin</artifactId> 
       <version>1.16.8.0</version> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
.... 
    <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.5.1</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.projectlombok</groupId> 
      <artifactId>lombok-maven-plugin</artifactId> 
      <version>1.16.8.0</version> 
      <configuration> 
       <encoding>UTF-8</encoding> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>testDelombok</goal> 
         <goal>delombok</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

如何解决这些编译错误?

[ERROR] /Users/superuser/Documents/workspace/project/test/src/main/java/com/company/services/impl/MyServiceImpl.java:[291,65] cannot find symbol 
[ERROR] symbol: method getUserId() 
+0

你可以发布什么样的编译器错误呢? – soorapadman

+0

@soorapadman,我添加了错误信息 –

+0

试试'mvn clean install -Dmaven.test.skip' – soorapadman

回答

2

将lombok依赖项移动到父pom的dependencyManagement元素中,以便它可以由子模块继承。您可以在所有模块中使用该插件,但看起来像lombok依赖项仅在模型模块中可用。

<dependencyManagement> 
    <dependencies> 
    ... 
    <dependency> 
    <groupId>org.projectlombok</groupId> 
    <artifactId>lombok</artifactId> 
    <scope>provided</scope> 
    </dependency> 
    </dependencies> 
</dependencyManagement> 
+0

以及如何在'model-contributor-module'模块中进行集成测试? –

+0

不确定你在问什么。如果你想做集成测试,你可以使用maven-failsafe-plugin--请参阅:http://maven.apache.org/surefire/maven-failsafe-plugin/ –