如何添加依赖项目的生成源来构建路径?

时间:2017-08-28 18:35:15

标签: java eclipse intellij-idea

我使用的是Intellij,同事正在使用Eclipse。大多数组件依赖的datamodel项目都包含所有JPA代码。

datamodel个依赖项之一是utils。在utils中有生成的来源。我在Eclipse中的同事,将utils的目标/生成源添加到构建路径中,所有内容都在Eclipse中构建并运行良好。

在Intellij中,当我转到项目结构时,是否需要转到utils并将utils的目标/生成源添加为Source文件夹以使其等效?

或者我是否需要将该模块添加为依赖项?

编辑: 在utils pom:

         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-antrun-plugin</artifactId>
           <executions>
             <execution>
               <id>generate-sources</id>
               <phase>generate-sources</phase>
               <configuration>
                 <tasks>
                   <mkdir dir="target/generated-sources" />
                   <exec executable="protoc">
                     <arg value="--java_out=target/generated-sources" />
                     <arg value="src/main/resources/utilities.proto" />
                   </exec>
                 </tasks>
                 <sourceRoot>target/generated-sources</sourceRoot>
               </configuration>
               <goals>
                 <goal>run</goal>
               </goals>
             </execution>
           </executions>
        </plugin>

2 个答案:

答案 0 :(得分:1)

您可以使用由同事构建的utils作为依赖项。 但是如果您想要更改utils的来源,那么您应该通过添加:

来修复其pom.xml
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.4</version>
    <executions>
        <execution>
            <id>test</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>${basedir}/target/generated-sources</source>
                </sources>
            </configuration>
        </execution>
    </executions>
</plugin>

IntelliJ支持插件,点击generated-sources后,Source文件夹将被标记为Reimport文件夹。

答案 1 :(得分:-1)

这取决于您在本地构建的项目是否实际生成了源。一个实例Intellij自动为我拾取生成的源。如果Intellij没有自动执行,那么您应该手动将其作为源文件夹。

如果您的项目没有生成源,那么您应该将它们添加为依赖项。

因此,在您的情况下,已经在utils dependency / project中做出了决定。 utils dependency / project是生成源还是包含源?