java对文本检查_java – 如何检查Gradle CopySpec以将其导出为文本表示?

我使用应用程序服务器的功能,允许我直接从Gradle的输出文件夹和源文件夹中的静态文件部署资源和类.我不想浪费时间打包到EAR,WAR或JAR,我想在不重新部署的情况下使用类似HotSwap的功能.

让我用一个简单的gradle项目和Tomcat 7来演示这个想法.

假设我们有一个具有以下结构的文件夹:

.

|-- build.gradle

`-- src

|-- css

| `-- main.css

|-- html

| `-- index.html

`-- images

`-- logo.png

4 directories, 4 files

我创建了一个简单的gradle项目:

的build.gradle

apply plugin: 'war'

war {

destinationDir temporaryDir

into 'META-INF/resources', {

from 'src/html/index.html'

}

into 'META-INF/resources/static', {

from 'src/css'

}

into 'META-INF/resources/static', {

from 'src/images'

}

}

那么有能力自动创建以下配置:

$CATALINA_HOME /卡塔利娜/本地主机/ myapp.xml

请注意,仅创建一个文件列表(没有文件夹映射)是不够的,例如:

/META-INF/resources/index.html=C:/myapp/src/html/index.html

/META-INF/resources/static/main.css=C:/myapp/src/css/main.css,

/META-INF/resources/static/logo.png=C:/myapp/src/images/logo.png

因为最初的问题陈述意味着有必要在没有重新部署应用程序的情况下创建和删除传入文件夹中的文件.

更新1

在Gradle的github上创建了issue

更新2

请注意,这个例子只是一个虚构的案例来向您展示这个想法.我知道java源路径约定.

我的目标是找到一种自动生成现有大型项目的CopySpec映射的方法.我希望为任何开发人员提供添加和删除CopySpec(或基于CopySpec的任务)的能力,而无需了解如何将其转换为应用程序服务器的映射配置.

最佳答案 我能想到的三种方法

>将groovy代码解析为AST并从AST生成xml.这对我来说听起来真的很难

>首先在您自己的自定义模型中定义目录等.然后基于相同的模型生成CopySpec和XML.这听起来更容易

>通过内部Gradle API(例如War,AbstractCopyTask和CopySpecInternal)进行工作,看看你是否可以做任何事情.也许您可以使用CopySpecVisitor或CopySpecListener解决此问题.注意:如果您使用内部API,Gradle不保证在将来的版本中不会破坏它.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值