- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 ant 的新手,而且更习惯 Makefile。在一个项目中,名为 Message_zh.class 等的 i18n 语言模块是在每次编译时无条件地从 zh.po 等构建的,尽管它们已经存在,这浪费了很多时间。我认为这些是 build.xml 的相关部分:
<target id="msgfmt" name="msgfmt">
<mkdir dir="po/classes" />
<propertyregex property="filename"
input="${file}"
regexp="[.]*/po/([^\.]*)\.po"
select="\1"
casesensitive="false" />
<exec dir="." executable="msgfmt">
<arg line="--java2 -d po/classes -r app.i18n.Messages -l ${filename} po/${filename}.po"/>
</exec>
</target>
<target id="build-languageclasses" name="build-languageclasses" >
<echo message="Compiling po files." />
<foreach target="msgfmt" param="file">
<path>
<fileset dir="po" casesensitive="yes">
<include name="**/*.po"/>
</fileset>
</path>
</foreach>
</target>
目标构建语言类依赖于编译目标,因此每次编译时,都会再次对整个集合进行 msgfmted。仅当 1. po 文件已更改,或 2. 类文件不存在时,应如何编写才能调用 msgfmt?如果无需进一步的软件就可以实现这一点,我会很高兴。你能帮忙或给我举个例子吗?
第一次尝试解决方案对 Ant 的行为没有影响:
<target id="build-languageclasses" description="compile if Messages??.class files not uptodate" name="build-languageclasses" unless="i18n.uptodate">
<condition property="i18n.uptodate">
<uptodate>
<srcfiles dir="${po}" includes="**/*.po"/>
<mapper type="glob" from="${po}/*.po" to="${po}/classes/app/i18n/Messages*.class"/>
</uptodate>
</condition>
<echo message="Compiling po files." />
<foreach target="msgfmt" param="file">
<path>
<fileset dir="po" casesensitive="yes">
<include name="**/*.po"/>
</fileset>
</path>
</foreach>
</target>
这里出了什么问题?
最佳答案
问题是您正在测试属性 i18n.uptodate
在运行 uptodate
之前任务。您的条件 block 必须在输入 build-languageclasses
之前运行目标。
你应该像这样重新组织你的代码:
unless="i18n.uptodate"
围绕主要目标build-languageclasses
分成2个目标。 <condition>
仅阻止。<foreach>
)第二个目标配置为根据属性 i18n.uptodate
有条件地运行由第一个目标设置。
编辑 - 这是更新任务的工作示例
<property name="source" value="${basedir}/src"/>
<property name="dist" value="${basedir}/dist"/>
<target name="init">
<condition property="that.uptodate">
<uptodate>
<srcfiles dir="${source}" includes="*.txt"/>
<mapper type="glob" from="*.txt" to="${dist}/*.bat"/>
</uptodate>
</condition>
</target>
<target description="check that" name="dist" unless="that.uptodate" depends="init">
<echo>we have something to do!</echo>
</target>
嗨米。
关于java - ant - 更新任务 : regenerate only outdated files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11601085/
我正在按照此链接的说明进行操作。 https://reactjs.org/docs/add-react-to-a-website.html 我有以下代码并且它有效: const domContaine
我正在使用 Parcel 来捆绑我的项目并 Jest 运行我的测试。 一切正常,但在测试中我有 async/await关键字,我必须导入 regenerator-runtime/runtime像这样:
我在我公司的代码库中注意到了它,它每周有 3000 万次下载,所以我很好奇它的重要性。 最佳答案 regenerator-runtime 是编译/转译的运行时支持async功能。 (它可能还有其他用途
是否可以“强制”为 specflow 功能文件重新生成步骤定义?我已创建此功能文件,但无法生成所有步骤。我收到一条消息,所有步骤都已绑定(bind),但是当我运行测试时,我收到一个错误,指出相同的步骤
上周我们进行了一次大型站点迁移,转储了大约 1200 个 mysql 数据库并恢复了它们。但是在这个过程中,我们恢复了“mysql”数据库,然后我们失去了所有已经在新服务器上创建的权限和用户。 有没有
我有一个如下指定的对象: { "player settings": [ { "id": 1, "labelName": "site language", "
尝试运行 react native 项目,但我收到此错误: Unable to resolve "/Users/bobby/node_modules/babel-runtime/regenerator
一旦我尝试使用 Promises,Browserify 就会抛出此错误。 在 中找不到模块“regenerator-runtime/runtime” 我尝试过 Node 版本 10.15.3 和 12
我正在寻找一种完全禁用 babel 生成器函数转换的方法。对于 babel 5 有一个 blacklist 选项,但是对于 babel 6 似乎没有办法做到这一点(至少我没有在官方网站上找到任何文档)
我们将 Git 与 Gerrit 结合使用,使用 commit hook 为 Gerrit 生成 change id。现在的问题是,当 cherry-picking 提交时,不会触发提交 Hook ,
对于基于SpecFlow的测试项目,在项目上下文菜单(右键单击)上有一个名为“重新生成功能文件”的命令,该命令(顾名思义)将为SpecFlow测试的功能文件重新生成支持代码。我正在使我们的过程尽可能地
我遵循了此链接中的 gRPC 快速入门文档 https://grpc.io/docs/languages/go/quickstart/在重新生成 gRPC 代码时,我收到错误(未知标志:--go_op
我是 ant 的新手,而且更习惯 Makefile。在一个项目中,名为 Message_zh.class 等的 i18n 语言模块是在每次编译时无条件地从 zh.po 等构建的,尽管它们已经存在,这浪
我遇到了这个问题: request.session.regenerate(function() { request.session.user = username;
是否可以重新生成 Interweld TeamSite 6.7.2 中的所有页面?仅选择一个文件夹并单击“操作”->“重新生成页面”是行不通的。它收到错误消息:“不是生成的文件”。 那么有没有通过文件
我正在制作一个消息系统,其中消息ID是session_id并且它位于session_regenerate id上。 它工作正常,但是当我更改模板时,它不断出现如下错误: " Warning: sess
我无法让 ASP 身份按需刷新其存储在 cookie 中的身份。 在 Startup.Auth.cs 文件中,cookie 设置为重新生成,如下所示: app.UseCookieAuthenticat
您好,我正在学习 Node with React full web stack 类(class),但我遇到了一个大问题,我不知道它为什么会出现,或者从什么出现。 我的终端显示此错误: req.sess
我有一个非常大的数据库连接到我的 Entity Framework 。我有一组特定的表,其中从设计中删除了一个公共(public)键 (fk)。当我“从数据库更新模型”时,我收到了关于这个现在丢失的
我正在开发一个 NPM 模块,但我的 babel 配置一直有问题。我正在使用 ES6,特别是异步/等待、静态类方法和导入/导出。 起初,我遇到了以下常见问题:ReferenceError: regen
我是一名优秀的程序员,十分优秀!