2017-06-29 106 views
0

有一個產生戰爭的web管理項目和產生不同戰爭的API項目是很常見的。每個可以運行在具有不同防火牆規則的不同服務器上(生產中)。常見的部分是服務和領域層。另外,可能還有其他可選的組件,它們也可以從爆炸插件中受益。分解插件允許分離,但允許開發人員查看和修改所有源代碼,就像它是一個巨大的項目一樣。grails 3創建子項目

Grails中2.5這一設置是微不足道的:

  1. 在你的項目根目錄中創建您的Web管理應用
  2. 建立自己的核心業務應用程序作爲項目的根
  3. 一個插件添加一條線你的web管理器項目BuildConfig.groovy使用服務項目作爲分解插件,例如「grails.plugin.location.coreservices =」../coreservices「」

要構建項目,您只需在Web管理員應用程序文件夾中進行grails戰爭。

太棒了。輕鬆有效。開發人員只需從git簽出兩個項目,然後離開他們。與intellij 14無縫地工作也是一種獎勵(我們沒有15+的許可證,遺憾的是沒有grails 3的支持)

在我們考慮轉向grails 3之前,我們需要能夠做同樣的事情。

關於這個問題,我們只能找到一個post

這需要對gradle腳本進行大量的「黑客行爲」,並在兩個項目上方的目錄中創建腳本,這對於使用git並不理想。

在「保持幹活」部分,他們將一些東西從子項目build.gradle文件移動到項目上方的build.gradle文件中。這是必需的嗎?

  1. 新的主gradle文件有兩個「repositories {mavenLocal()..」。一次在buildscript的頂部,然後再次在「子項目{project->」下。它是否正確?它不應該只是在主要項目上,還是隻在兩個子項目上,而不是全部3個?

  2. 如果我們引入可選的分解插件(具有不同的依賴關係),每個開發人員必須手動編輯父gradle。這使得版本和控制變得困難。

  3. 本文將spring security core添加到「插件域」,而不是web應用程序項目。當然,安全性已添加到Web應用程序中,而不是服務/域插件?一個API應用程序項目會有不同的安全需求。

有沒有人有更好的方法與Grails 3,或者我們應該堅持Grails 2.5?在我們需要的Grails 3中沒有任何特性,但是在某些時候,2.5會變得過於老化,大多數情況下遷移看起來是不可行的。事實上沒有負擔得起的IDE集成了類似於intellij ultimate或GGTS的grails 3支持,這也是一個很大的負面因素。

回答

1

「黑客」是沒有必要的。 下面是官方的多重教程: http://guides.grails.org/grails-quickcasts-multi-project-builds/guide/index.html

mavenLocal() - 是用來存儲所有項目的依賴本地文件夾。 「buildscript」塊只控制buildscript流程本身的依賴關係,而不是用於頂層「依賴」塊控制的應用程序代碼。因此,您可以爲「構建腳本」和「依賴關係」設置不同的存儲庫。

閱讀Gradle用戶指南瞭解更多信息。 Gradle比舊Grails更難構建系統,但功能更強大。

我將項目從grails 2移至3,對結果感到滿意。

的IntelliJ 2016至2017年的工作完美使用Grails 3

0

我發現,跟着this tutorial,這是大多數其他教程的不同,因爲它使用CREATE-插件,而不是創造,應用該插件的一部分。

該項目然後與eclipse neon 2正常工作。