2017-08-28 25 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文件夾。

相關問題