`
egox
  • 浏览: 43493 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ant 遍历 properties

    博客分类:
  • Ant
阅读更多

import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;

public class PropertyReader {
	private static Properties pro = null;
	public static final String CONFIG_FILE = "kk-config.properties";
	public static final String SQL_FILE = "kk-config.sql";
	public static final String DB_NAME = "mts_konakart";
	public static final String TABLE_NAME = "configuration";
	
	static {
		pro = new Properties();
		try {
			pro.load(new FileInputStream(CONFIG_FILE));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void execute() {
		try {
			FileWriter fileWriter = new FileWriter(SQL_FILE);
			BufferedWriter bw = new BufferedWriter(fileWriter);
			bw.write("USE " + DB_NAME + ";");
			bw.newLine();
			Iterator it = pro.entrySet().iterator();
			while (it.hasNext()) {
				Map.Entry entry = (Map.Entry) it.next();
				Object key = entry.getKey();
				Object value = entry.getValue();
				String sql = "UPDATE " + TABLE_NAME +  " SET configurationvalue='" + value + "' WHERE configuration_key='" + key + "';";
				System.out.println(sql);
				bw.append(sql);
				bw.newLine();
			}
			bw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
 <?xml version="1.0"?>
<project name="kk-config" basedir="." default="update">
	<property name="project.dir" value="." />
	<property name="src.dir" value="src"/>
    <property name="classes.dir" value="classes"/>
	<property name="kk.sql" value="kk-config.sql" />
	
	<target name="create-sql" description="Create the sql file" depends="jar">
        <taskdef name="propertyreader" classname="PropertyReader" classpath="${ant.project.name}.jar"/>
        <propertyreader/>
    </target>
	
    <target name="clean" description="Delete all generated files">
        <delete dir="${classes.dir}" failonerror="false"/>
        <delete file="${ant.project.name}.jar"/>
		<delete file="${ant.project.name}.sql"/> 
    </target>

    <target name="compile" description="Compiles the Task">
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="${src.dir}" destdir="${classes.dir}"  includeantruntime="on"/>
    </target>

    <target name="jar" description="JARs the Task" depends="compile">
        <jar destfile="${ant.project.name}.jar" basedir="${classes.dir}"/>
    </target>
	
	<target name="update" depends="create-sql">
		<sql driver="org.gjt.mm.mysql.Driver"
			url="jdbc:mysql://localhost:3306/mydb"
			userid="root"
			password="abc123_"
			src="${kk.sql}"
		/>
	</target>
</project>
 
分享到:
评论

相关推荐

    ant自动打包编译android custom_rules和ant.properties文件

    本篇文章将深入探讨如何使用Ant自动打包编译Android应用,并重点介绍`custom_rules.xml`和`ant.properties`这两个配置文件的作用。 `Ant.properties`是Ant构建过程中的一个关键配置文件,它用于存储项目特定的属性...

    ant lib ant 所有lib包

    &lt;taskdef resource="net/sf/antcontrib/antcontrib.properties"&gt; &lt;pathelement location="path/to/ant-contrib-1.0b2.jar"/&gt; ``` 然后我们可以在构建脚本中使用`for`任务: ```xml **/*.java"/&gt; ...

    移动开发:Android Ant一键自动打多渠道包

    4. **修改build.xml**:在`build.xml`中添加一个循环任务,遍历`ant.properties`中的所有渠道标识,并对每个标识执行打包操作。这个任务会替换APK中的渠道标识字符串,如替换`res/values/strings.xml`中特定的值,...

    ant-contrib-1.jar工具

    在这个例子中,我们首先通过元素加载ant-contrib的任务定义,然后就可以在构建脚本中使用foreach任务来遍历列表并执行名为"do-something"的目标。 总的来说,Ant和Ant Contrib在Java项目的构建和管理中扮演着重要...

    ant批量打包脚本

    同时,可以为每个市场定义不同的属性文件,比如channel.properties,用于存储渠道相关的特定配置。 4. **定义打包任务**:使用`&lt;apk&gt;`任务来执行打包操作,指定输入的编译后的类文件、资源文件、AndroidManifest....

    ant-contrib-1.0b3-bin.jar

    而"for"任务的出现,使得Ant可以遍历集合并执行指定的操作,极大地提高了代码的可读性和维护性。只需在Ant脚本中添加"for"任务,就可以实现类似于编程语言中的循环结构。 三、集成与使用 要使用"ant-contrib-1.0b3...

    有关ant-crontrib的一些注意的东西

    在提供的文件列表中,`build.bat`可能是Windows下的构建脚本,`build.properties`通常用于存储构建相关的配置属性,`build.xml`是Ant的主要构建文件,而`有关ant-crontrib的问题.txt`可能包含了作者在使用Ant-...

    Android ANT批量打包教程及所有资源文件

    例如,你可以创建一个包含所有渠道号的列表,然后遍历这个列表,每次替换渠道号并打包。 9. **资源文件管理** 压缩包中的"ant批量打包资源文件"可能包括以下内容: - `build.xml`: 自定义的ANT构建脚本 - `...

    ant 多渠道自动打包

    3. **定义多渠道任务**:创建一个Ant任务,如`build-all-channels`,它会遍历所有渠道并调用打包任务。可以通过`subant`任务来实现,这样可以对每个渠道执行相同的构建过程。 4. **打包过程**:在`&lt;target&gt;`标签内...

    使用Ant批量多渠道打包Android

    确保你的Android项目已经集成了Ant依赖,并且`build.properties`文件配置正确,包含Android SDK和NDK的路径。 接下来,我们需要创建一个渠道文件夹,用于存放每个渠道的配置信息。例如,可以创建一个名为`channels`...

    android ant 多渠道批量打包Demo

    5. **替换渠道标识的脚本**:Ant脚本中会有一个任务读取channels.txt,然后遍历文件中的每个渠道名,对APK进行签名并替换字符串资源。 6. **源代码和资源文件**:包括Android项目的Java源代码、资源文件(如布局、...

    library project中的build.xml和local.properties

    2. **遍历渠道**:使用Ant的`for`循环遍历每个渠道,并在每个迭代中修改APK的版本名称或代码,添加渠道标识符等。 3. **构建APK**:在每个渠道迭代中,执行构建任务,生成特定于该渠道的APK。 4. **签名和优化**:对...

    android ant多渠道打包

    4. **遍历渠道**:在Ant脚本中使用`for`循环遍历`local.properties`中的每个渠道,为每个渠道执行打包操作。在打包过程中,修改`AndroidManifest.xml`中与渠道相关的值,如广告ID、统计代码等。 5. **编译和打包**...

    ant-contrib-0.2.jar.zip

    在这个例子中,`&lt;foreach&gt;`遍历指定目录下的所有.java文件,并对每个文件执行`-do-something`目标。 总结来说,"ant-contrib-0.2.jar.zip"是一个包含Apache Ant扩展库和许可信息的压缩包,它扩展了Ant的构建能力,...

    移动开发:Android Ant一键自动打多渠道包(xmltask)

    然后,设置一个循环,遍历`build.properties`中的每个渠道,并在每次迭代中调用xmltask修改AndroidManifest.xml文件,替换特定的渠道标识符。 3. **修改AndroidManifest.xml**:在AndroidManifest.xml中,定义一个...

    Android ant 多渠道批量打包解决方案

    - 定义一个用于多渠道打包的目标,如`release-all`,在其中使用`foreach`任务遍历渠道列表: ```xml , channel2, channel3" target="package-for-channel" param="channel"/&gt; ${channel}"/&gt; &lt;!-- 更改...

    Ant打多渠道包

    在运行Ant构建时,`package-apk`目标会遍历所有渠道,对每个渠道执行`package-channel`目标,从而生成对应的定制APK。在`replace`任务中,我们用每个渠道的ID替换`strings.xml`文件中的`@string/channel_id`值,确保...

    android ant 多渠道批量打包,利用ant 可实现多渠道,批量打包。

    使用Ant的`for`循环或者`subant`任务来遍历所有渠道,并为每个渠道执行打包操作。例如: ``` ${channels}" delimiter=',' param="channel"&gt; &lt;!-- 设置当前渠道属性 --&gt; ${param}"/&gt; &lt;!-- 执行打包操作 --&gt; ...

    关于Ant多渠道批量打包总结

    Ant作为一款强大的Java构建工具,被广泛应用于自动化这些任务。本篇文章将深入探讨Ant如何实现多渠道批量打包,以及相关知识点。 **Ant简介** Apache Ant是一个基于Java的构建工具,其设计灵感来源于Make,但使用...

Global site tag (gtag.js) - Google Analytics