【问题标题】:FreeMarker modify existing fileFreeMarker 修改现有文件
【发布时间】:2017-07-13 23:42:44
【问题描述】:

我想使用 FreeMarker 修改现有文件。 例如,

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  package="$(package_name)">
  $(activities)
  <activity android:name=".map.activity.MapsDemoActivity" />
  <activity android:name=".map.activity.MapListActivity" />
  <activity android:name=".map.activity.EventsDemoActivity" />
  <activity android:name=".map.activity.InfoWindowDemoActivity" />
  <activity android:name=".map.activity.CustomMarkerClusteringDemoActivity" />
</manifest>

在上面的代码中,我想更新 $(package_name) 和 $(activities)。

我正在使用org.freemarker:freemarker:2.3.23,需要使用Java程序进行此文件修改。

我知道如何使用免费 maker 创建新文件,但无法使用 java 程序修改现有文件。

请提出任何解决方案。

【问题讨论】:

  • 不明白..你想用Java程序更新.ftl模板文件吗?它是文本,因此打开文件、读取行、查找要替换的文本等。
  • 不,不是那样的。让我用一个例子来解释一下,我有一个现有的 File-1.java,我想在其中添加一些代码(比如一个方法)。因此将使用占位符创建 File-2.java.ftl。现在我想将 File-2.java.ftl 的内容合并到 File-1.java 中。类似的代码合并在 Android Studio 中完成,当我们创建新活动时,它会添加 activity.java、layout.xml 并将其值合并到 strings.xml 和 manifest.xml 中。希望这可以澄清!

标签: java file freemarker


【解决方案1】:

在 recipe.xml 中使用合并命令

<merge from="root/src/AndroidManifest.xml.ftl"    
to="${escapeXmlAttribute(manifestOut)}/AndroidManifest.xml" />

在根目录/src/AndroidManifest.xml.ftl 您只需指定要插入的元素

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-18
    • 2013-06-04
    • 2021-11-23
    • 1970-01-01
    • 2013-10-14
    • 2014-03-24
    • 1970-01-01
    • 2012-01-23
    相关资源
    最近更新 更多