2017-08-28 58 views
0

我正在使用Intellij和同事使用Eclipse。有一个datamodel项目,大多数组件都依赖于它具有所有JPA代码。如何添加依赖项目的生成源以构建路径?

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

在Intellij中,当我转到Project Structure时,是否需要转到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> 
+0

这些依赖项如何管理?例如,使用maven来定义依赖关系会自动包含utils.jar,因此项目变得不可知。如果通过IDE手动管理项目以编译事物,那么项目如何准确地部署其所有依赖项? –

+0

utils是''datamodel'的maven中的依赖关系。 – Crystal

+0

然后datamodel.jar应该是另一个项目中的一个依赖项。传递依赖关系还将包括utils.jar(除非它被特别标记为排除或标记为提供)。 –

回答

-1

这取决于你本地实际建立该项目产生的来源。一个Intellij实例为我自动拾取生成的源代码。如果Intellij没有自动完成,那么你应该手动将它作为源文件夹。

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

所以在你的情况下,这个决定已经在utils dependency/project中做出了。 utils依赖项/项目是生成源还是包含源?

+0

utils项目生成源代码。 – Crystal

+0

然后你应该添加项目作为maven中的依赖项。依赖项的创建者已经决定如何打包依赖项。通常在Maven环境中,公司的软件包已经安装在工件存储库中。你唯一需要做的就是在你自己的pom中定义依赖关系,将它包含在你的项目中。 如果依赖关系不在公司存储库中,您需要项目的源代码并使用maven生成和编译源代码。这通常通过以下命令完成: maven clean install –

+0

如果其他项目也需要它,请考虑将其安装到公司存储库中。这通常是通过命令完成的: maven clean deploy –

0

您可以使用由您的同事构建的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支持插件,点击Reimportgenerated-sources文件夹将被标记为Source文件夹。

相关问题