grails hỗ trợ tạo chiến tranh. Nhưng có bất kỳ lệnh nào để tạo ra một tai thông qua grails?tạo tai trong grails
7
A
Trả lời
9
Không có hỗ trợ trực tiếp trong Grails, nhưng tập lệnh Gant này sẽ thực hiện công việc. Chỉ cần thêm vào scripts/
dir và được gọi là grails ear
.
Script Nguyên văn bởi Graeme on mailing list
includeTargets << grailsScript("_GrailsWar")
target(ear: "Creates an EAR file from a Grails WAR") {
war()
event("StatusUpdate", ["Building EAR file"])
generateApplicationXml()
def warDest = new File(warName).parentFile
def earFile = "${projectTargetDir}/${contextRoot}.ear"
ant.ear(destfile:earFile, appxml:appXml, update:true) {
fileset(dir:warDest, includes:"*.war")
}
event("StatusFinal", ["Done creating EAR $earFile"])
}
target(defineContextRoot:"defines the context root") {
contextRoot = "${grailsAppName}${grailsAppVersion ? '-'+grailsAppVersion : ''}"
}
target(generateApplicationXml:"Generates an application.xml file") {
depends(defineContextRoot)
def warDest = new File(warName)
appXml = "${projectTargetDir}/application.xml"
new File(appXml).write """\
<?xml version="1.0" encoding="UTF-8"?>
<application
xmlns=http://java.sun.com/xml/ns/j2ee
xmlns:xsi="http://www.w3.org/ 2001/XMLSchema-instance"
xsi:schemaLocation="http:// java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/ application_1_4.xsd"
version="1.4">
<display-name>${grailsAppName}</display-name>
<module>
<web>
<web-uri>${warDest.name}</web-uri>
<context-root>${contextRoot}</context-root>
</web>
</module>
</application>
"""
}
setDefaultTarget(ear)
2
Đây là một câu trả lời rất muộn, nhưng ngày nay các plugin grails maven là khá tốt. Vì vậy, bạn chỉ có thể xây dựng một tai ra khỏi cuộc chiến được sản xuất bởi các plugin mils grails.
Các vấn đề liên quan
- 1. Tạo vụ tai nạn .NET tự động
- 2. Grails: Lỗi khi tạo tệp web.xml
- 3. Tai nạn hủy diệt
- 4. Tai nạn UIWebView EXC_BAD_ACCESS
- 5. Tai nạn iOS WebTryThreadLock
- 6. Tai ương Python _winreg
- 7. Tai nạn ứng dụng MFMailComposeViewController trong ipad
- 8. Tai nạn CoreTelephony
- 9. NServiceBus MSDTC tai họa
- 10. Tai họa Haskell Parsec
- 11. JSON trong Groovy/Grails
- 12. Phân trang trong Grails
- 13. 301 trong Grails
- 14. Buộc https trong Grails
- 15. Hiển thị JSON trong grails
- 16. log tai nạn không được tạo ra khi ứng dụng bị treo trên EXC_BAD_ACCESS trong chính
- 17. cách tạo tệp tai và bao gồm tệp chiến tranh và tệp jar bên trong đó
- 18. NSDictionary allKeys tai nạn - Không thể hiểu được hoàn cảnh Báo cáo tai nạn
- 19. Tai nạn mẫu OpenNI UserTracker.java
- 20. Tạo một Grails bắt tất cả các ánh xạ URL
- 21. Tạo chuỗi thế hệ Grails cho Oracle 11g
- 22. Grails GORM MySQL tạo cột TEXT hoặc LONGTEXT
- 23. Bộ điều khiển trong Grails
- 24. Grails/GORM "trong" tiêu chí
- 25. GORM trong Grails và StaleObjectStateException
- 26. java.lang.ClassCastException trong ứng dụng Grails
- 27. báo cáo jasper trong grails
- 28. Tai nạn hiệu ứng thẻ cào ios
- 29. Các API thiên tai Đối với ứng dụng ứng phó thiên tai
- 30. Sử dụng lớp java trong Grails
Bất kỳ lý do nào tại sao đây không phải là một phần của khung grails? – kaskelotti
Có lẽ tập lệnh này đã hoạt động đối với các phiên bản trước của grails, nhưng đối với '2.3.4', tôi nhận được thông báo lỗi rằng thuộc tính warName không tồn tại. Giải quyết nó bằng cách định nghĩa nó trong kịch bản là 'warName =" $ {basedir}/target/$ {grailsAppName} - $ {grailsAppVersion} .war "'. Tôi đã kiểm tra từ các nguồn và có vẻ như thuộc tính warName hiện diện trong WarCreator.groovy (và cũng có thể trong tập lệnh _GrailsWar), nhưng không hiển thị với kịch bản lệnh Ear vì một lý do nào đó. – kaskelotti
nhưng tai grails tạo ra cho môi trường phát triển, tôi cần tạo ra môi trường sản xuất – sirdaiz