2016-01-13 230 views
0

我使用Spring框架(家庭項目)工作,並具有相同項目(分支)的兩個主要版本。分析不同分支的maven依賴關係

  • 第一個是'純'彈簧框架,在pom中使用手動配置的軟件包依賴關係。
  • 第二個是Spring引導,由於Spring引導自動化(關於依賴關係),它在pom中的依賴關係略有不同。

問題:有沒有辦法有一個文件(類似於配置文件的東西)內的這兩個不同的POM的依賴?還是有另一個更好的解決方案來保持這兩種配置?

+0

如果您有兩個分支,然後保留每個分支的特定依存列表,然後在開發完成後將分支合併到主幹。如果這些實際上是兩個獨立的項目,那麼你可以考慮定義一個共同的父Maven POM,它擁有共享的屬性和依賴關係。 – emeraldjava

+0

關鍵是這些分支應該有相同的代碼。不同的是spring引導中只有一些java配置類,並且在pom中有依賴關係。我希望有這些分離的分支機構,以防需要其中一個分支機構。應用程序中的代碼應該合併到它們兩個中。我認爲我會從這些分支之一做出補丁。 – kropla

+0

你說,類似於配置文件,但你爲什麼不使用該配置文件@ kropla? – g00glen00b

回答

1

你可以使用Maven的配置文件有單獨的插件或依賴特定的Maven配置文件,例如:

<profiles> 
    <profile> 
     <id>profile-1</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <dependencies> 
      <dependency> 
       <groupId>com.example.xyz</groupId> 
       <artifactId>library-1</artifactId> 
       <version>1.0.0</version> 
      </dependency> 
     </dependencies> 
    </profile> 
    <profile> 
     <id>profile-2</id> 
     <dependencies> 
      <dependency> 
       <groupId>com.example.xyz</groupId> 
       <artifactId>library-2</artifactId> 
       <version>1.0.0</version> 
      </dependency> 
      <dependency> 
       <groupId>com.example.xyz</groupId> 
       <artifactId>library-3</artifactId> 
       <version>1.0.0</version> 
      </dependency> 
     </dependencies> 
    </profile> 
</profiles> 

在這種情況下,如果你使用-P profile-1同時建設這將增加庫1。與-P profile-2它將包括庫-2和庫-3。


儘管您的用例對我來說並不完全清楚,但聽起來並不像這是一個項目。我的意思是,如果你有一個項目,對於我來說似乎很奇怪你正在切換Spring引導/非Spring引導。

如果您有多個需要相同類的項目,您可以始終創建一個包含這些類的單獨模塊。然後你可以使用:

@ComponentScan(basePackages = "com.example.common.library") 

現在你的共享類將被你的Spring啓動項目和非Spring啓動項目使用。


如果你想出去春天開機就特定項目或你從香草春轉換爲春天開機,那麼你應該使用VCS(如Git)來處理,創建一個新的分支開發您的Spring啓動應用程序並在完成後將其合併到主分支中。