android ant 打包,包含第三方jar库且有资源文件的工程

<?xml version="1.0" encoding="UTF-8"?>
name="MainProject"
basedir="."
default="main" >

<!--
     The local.properties file is created and updated by the 'android' tool.
     It contains the path to the SDK. It should *NOT* be checked into
     Version Control Systems.
-->

<property file="local.properties" />

<property
    name="apk-name"
    value="product" />

<property
    name="apk-version"
    value="latest" />

<property
    name="apk-market"
    value="dev" />

<!-- android.jar路径 -->

<property
    name="android-jar"
    value="/opt/adt/sdk/platforms/android-19/android.jar" />

<!-- android.tools路径 -->

<property
    name="android.tools"
    value="/opt/adt/sdk/tools" />


<!-- 初始化 目录文件 -->
<target name="init" >

    <echo>
            start initing ... 
    </echo>

    <mkdir dir="out" />

    <delete>

        <fileset dir="out" >
        </fileset>
    </delete>

    <mkdir dir="gen" />

    <delete>

        <fileset dir="gen" >
        </fileset>
    </delete>

    <mkdir dir="assets" />

    <delete>

        <fileset dir="assets" >
        </fileset>
    </delete>

    <mkdir dir="bin/classes" />

    <delete>

        <fileset dir="bin/classes" >
        </fileset>
    </delete>


    <!-- ${apk-version}表示版本,后面会详细讲到 -->

    <mkdir dir="build/${apk-version}" />

    <echo>
            finish initing. 
    </echo>
</target>

<target
    name="main"
    depends="init" >

    <echo>
            generating R.java for project to dir gen (using aapt) ... 
    </echo>

    <exec executable="aapt" failonerror="true" >

        <arg value="package" /> <!-- package表示打包 -->
        <arg value="-m" /> <!-- m,J,gen表示创建包名的目录和R.java到gen目录下 -->

        <arg value="-J" />

        <arg value="gen" />

        <arg value="-M" /> <!-- M指定AndroidManifest.xml文件 -->

        <arg value="AndroidManifest.xml" />

        <arg value="-S" /> <!-- S指定res目录,生成对应的ID,可多个 -->

        <arg value="res" />

        <arg value="-S" />

        <arg value="../SlideMenu/res" />

        <arg value="-I" /> <!-- I指定android包的位置 -->

        <arg value="${android-jar}" />

        <arg value="--auto-add-overlay" /> <!-- 这个重要,覆盖资源,不然报错 -->
    </exec>

generating R.java for library to dir gen (using aapt)

    <exec executable="aapt" failonerror="true">
        <arg value="package" />
        <arg value="-m" />
        <arg value="--non-constant-id" />
        <arg value="--auto-add-overlay" />
        <arg value="-J" />
        <arg value="gen" />
        <arg value="-M" />
        <arg value="../SlideMenu/AndroidManifest.xml" />
        <arg value="-S" />
        <arg value="res" />
        <arg value="-S" />
        <arg value="../SlideMenu/res" />
        <arg value="-I" />
        <arg value="${android-jar}" />
    </exec>



    <!-- 第三方jar包需要引用,用于辅助编译 -->

    <path id="project.libs" >

        <fileset dir="libs" >

            <include name="*.jar" />
        </fileset>
    </path>

    <echo>
            compiling java files to class files (include R.java, library and the third-party jars) ... 
    </echo>

    <!-- 生成的class文件全部保存到bin/classes目录下 -->

    <javac
        bootclasspath="${android-jar}"
        destdir="bin/classes" >

        <src path="../RemoteHelpe/src" />

         <src path="../SlideMenu/src" />

        <src path="src" />

        <src path="gen" />

        <classpath refid="project.libs" />
    </javac>

    <echo>
            packaging class files (include the third-party jars) to calsses.dex ... 
    </echo>

    <exec executable="dx" >

        <arg value="--dex" />

        <arg value="--output=out/classes.dex" /> <!-- 输出 -->

        <arg value="bin/classes" /> <!-- classes文件位置 -->

        <arg value="libs" /> <!-- 把libs下所有jar打包 -->
    </exec>

    <echo>
            packaging resource (include res, assets, AndroidManifest.xml, etc.) to res.zip ... 
    </echo>

<!-- 打包资源文件 -->
    <exec executable="aapt" >

        <arg value="package" />

        <arg value="-f" /> <!-- 资源覆盖重写 -->

        <arg value="-M" />

        <arg value="AndroidManifest.xml" />

        <arg value="-S" />

        <arg value="res" />

         <arg value="-S" /> <!-- lib资源文件的res -->

        <arg value="../SlideMenu/res" />



        <arg value="-A" /> <!-- 与R.java不同,需要asset目录也打包 -->

        <arg value="assets" />

        <arg value="-I" />

        <arg value="${android-jar}" />

        <arg value="-F" /> <!-- 输出资源压缩包 -->

        <arg value="out/res.zip" />

        <arg value="--auto-add-overlay" />
    </exec>

    <echo>
            building unsigned.apk ... 
    </echo>

    <java
        classname="com.android.sdklib.build.ApkBuilderMain"
        classpath="${android.tools}/lib/sdklib.jar" >

        <arg value="out/unsigned.apk" />

        <arg value="-u" />

        <arg value="-z" />

        <arg value="out/res.zip" />

        <arg value="-f" />

        <arg value="out/classes.dex" />

        <arg value="-nf" />  

        <arg value="./libs" />  

    </java>

    <!-- 生成apk文件到build目录下 -->
    <!-- 其中${apk-version/name/market}用户多渠道打包,后面会讲到 -->

    <echo>
                signing the unsigned apk to final product apk ... 
    </echo>

    <exec executable="java" >

        <arg value="-jar" />

        <arg value="../sign/signapk.jar" />

        <arg value="../sign/testkey.x509.pem" />

        <arg value="../sign/testkey.pk8" />

        <arg value="out/unsigned.apk" />

        <arg value="hello.apk" />
    </exec>

    <echo>
            done.
    </echo>
</target>

其实我现在的主要问题是:在打包jar库资源文件的时候,由于我的主程序中的一个layout文件引用了xmlns:wison="http://schemas.android.com/apk/res/com.main.project" 的说明;导致了 res/layout/audio.xml:260: error: No resource identifier found for attribute 'switchMinHeight' in package 'com.main.project' 的问题;

appt库资源文件的时候出的这个错。

请问大侠们怎么解决这个问题呢?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android ANT 打包错误
最近做ANT混淆的时候发现编译不过去,找了半天没有明白是什么错误 ,请各位大神帮忙解答一下。 -dex: [dex] input: F:\workspace\yunmaApplication\bin\proguard\obfuscated.jar [dex] Converting compiled files and external libraries into F:\workspace\yunmaApplication\bin\classes.dex... [dx] 'C:\Program' 不是内部或外部命令,也不是可运行的程序 [dx] 或批处理文件。 BUILD FAILED F:\adt-bundle-windows-x86_64-20130917\sdk\tools\ant\build.xml:892: The following error occurred while executing this line: F:\adt-bundle-windows-x86_64-20130917\sdk\tools\ant\build.xml:894: The following error occurred while executing this line: F:\adt-bundle-windows-x86_64-20130917\sdk\tools\ant\build.xml:906: The following error occurred while executing this line: F:\adt-bundle-windows-x86_64-20130917\sdk\tools\ant\build.xml:284: null returned: 1
ant 打包j2me 怎么打包jad文件
我公司现在要用ant打包j2me程序,我打包了jar文件之后,发现不能打包jad文件,没找到ant里类似jad的标签(打包直接可以用jar标签,但是没有jad标签),急急急!!!
Android ant 脚本打包 关联library project的项目
以下是build.xml Android ant 脚本打包 关联library project的项目,java源文件编译成class文件时 找不到R 打包cardview的library时 总是不能成功,其他library生成的都是包。但是cardview就是不行················································· <?xml version="1.0" encoding="UTF-8"?> <project name="recyclerexample" default="release" basedir="."> <!-- 指定配置文件 --> <property file="project.properties" /> <property file="local.properties" /> <!-- 定义工具目录 --> <property name="sdk.dir" value="${sdk-dir}" /> <property name="android.tools.dir" value="${sdk.dir}/tools" /> <property name="android.platformtools.dir" value="${sdk.dir}/platform-tools" /> <property name="android.platforms.dir" value="${sdk.dir}/platforms/${target}" /> <property name="android.tools.absolute.dir" location="${android.tools.dir}" /> <property name="android.platformtools.absolute.dir" location="${android.platformtools.dir}" /> <property name="android.platforms.absolute.dir" location="${android.platforms.dir}" /> <!-- 定义工具 <property name="verbose" value="false" />--> <condition property="exe" value=".exe" else=""> <os family="windows" /> </condition> <property name="jar.proguard" value="${proguard}" /> <property name="android-jar" value="${android.platforms.absolute.dir}/android.jar" /> <property name="android-dx" value="${android.platformtools.absolute.dir}/dx.bat" /> <property name="android-apkbuilder" value="${android.tools.absolute.dir}/apkbuilder.bat" /> <property name="android-adb" value="${android.platformtools.absolute.dir}/adb${exe}" /> <property name="android.zipalign" value="${android.tools.absolute.dir}/zipalign${exe}" /> <property name="android-aapt" value="${android.platformtools.absolute.dir}/aapt${exe}" /> <property name="android-jarsigner" value="${JAVA_HOME}/bin/jarsigner${exe}" /> <!-- ANT环境变量 --> <property environment="env" /> <!-- 生成R文件的相对目录 --> <property name="outdir-gen" value="${project.home}/gen" /> <!-- 编译后的文件放置目录 --> <property name="outdir-bin" value="${project.home}/bin" /> <!-- 输出目录 --> <property name="outdir" value="${project.outdir}" /> <!-- 清单文件 --> <property name="manifest-xml" value="${project.home}/AndroidManifest.xml" /> <!-- 源文件目录 --> <property name="resource-dir" value="res" /> <property name="asset-dir" value="assets" /> <!-- 资源文件目录 --> <property name="drawable-dir" value="${resource-dir}/drawable" /> <property name="drawable-hdpi-dir" value="${resource-dir}/drawable-hdpi"/> <property name="drawable-ldpi-dir" value="${resource-dir}/drawable-ldpi"/> <property name="drawable-mdpi-dir" value="${resource-dir}/drawable-mdpi"/> <property name="drawable-zh-rCN-dir" value="${resource-dir}/drawable-zh-rCN"/> <!-- java源文件目录 --> <property name="srcdir" value="src" /> <property name="srcdir-ospath" value="${project.home}/${srcdir}" /> <!-- 动态库so文件目录 --> <property name="library" value="${project.home}/libs" /> <!-- 第三方library --> <property name="library-dir1" value="${library1}" /> <property name="library-dir3" value="${library3}" /> <!-- 外部类库所在目录 --> <property name="external-lib" value="lib" /> <property name="external-lib-ospath" value="${project.home}/${external-lib}" /> <!-- 生成class目录 --> <property name="outdir-classes" value="${outdir-bin}/classes" /> <property name="outdir-classes-ospath" value="${outdir-classes}" /> <!-- classes.dex相关变量 --> <property name="dex-file" value="classes.dex" /> <property name="dex-path" value="${outdir-bin}/${dex-file}" /> <property name="dex-ospath" value="${dex-path}" /> <!-- 经过aapt生成的资源包文件 --> <property name="resources-package" value="${outdir-bin}/resources.ap_" /> <property name="resources-package-ospath" value="${resources-package}" /> <!-- 未认证apk包 --> <property name="out-unsigned-package" value="${outdir-bin}/${appName}-unsigned.apk" /> <property name="out-unsigned-package-ospath" value="${out-unsigned-package}" /> <!-- 证书文件 --> <property name="keystore-file" value="${keystore}" /> <!-- 已认证apk包 --> <property name="out-signed-package" value="${outdir-bin}/${appName}.apk" /> <property name="out-signed-package-ospath" value="${out-signed-package}" /> <!-- 已优化apk包 --> <property name="zipalign-signed-package" value="${outdir-bin}/${appName}${version}_release.apk" /> <!-- 输出路径的apk包 --> <property name="outdir-package" value="${project.outdir}/${appName}.apk" /> <!-- 初始化工作 --> <target name="init"> <echo>Initializing all output directories...</echo> <delete dir="${outdir-bin}" /> <delete dir="${outdir-gen}" /> <delete dir="${library-dir1}/bin" /> <delete dir="${library-dir3}/bin" /> <delete dir="${library-dir1}/gen" /> <delete dir="${library-dir3}/gen" /> <mkdir dir="${outdir-gen}" /> <mkdir dir="${outdir-bin}" /> <delete dir="${library-dir1}/bin" /> <delete dir="${library-dir3}/bin" /> <delete dir="${library-dir1}/gen" /> <delete dir="${library-dir3}/gen" /> <mkdir dir="${outdir-classes}" /> <!-- 把缺少的BuildConfig复制进去,暂时不知道如何生成 --> </target> <!-- 根据工程中的资源文件生成R.java文件 ,多个合并为一个--> <target name="GenRJAVA" depends="init"> <echo>Generating R.java / Manifest.java from the resources...</echo> <exec executable="${android-aapt}" failonerror="true"> <arg value="package" /><!-- package表示打包--> <arg value="-m" /><!--m,J,gen表示创建包名的目录和R.java到gen目录下 --> <arg value="-J" /> <arg value="${outdir-gen}" /> <arg value="-M" /><!-- M指定AndroidManifest.xml文件--> <arg value="${manifest-xml}" /> <arg value="-S" /><!-- S指定res目录,生成对应的ID,可多个--> <arg value="${resource-dir}" /> <arg value="-S" /> <arg value="${library-dir1}/res" /> <!-- 注意点:同时需要调用Library的res--> <arg value="-S" /> <arg value="${library-dir3}/res" /> <arg value="--extra-packages" /> <arg value="slidingmenu_library:SMSSDK" /> <arg value="-I" /><!-- I指定android包的位置--> <arg value="${android-jar}" /> <arg value="--auto-add-overlay" /> <!-- 这个重要,覆盖资源,不然报错--> </exec> </target> <!-- 将工程及库应用中的java源文件编译成class文件 --> <target name="compile" depends="GenRJAVA"> <echo>Compiling java source code...</echo> <javac encoding="UTF-8"target="1.6" destdir="${outdir-classes}" bootclasspath="${android-jar}" includeantruntime="on"> <src path="${library-dir1}/src" /><!-- 库应用源码 --> <src path="${outdir-gen}" /><!-- 生成的class文件全部保存到bin/classes目录下 --> <classpath> <fileset dir="${library-dir1}/libs" includes="*.jar" /><!-- 第三方jar包需要引用,用于辅助编译 --> </classpath> </javac> <javac encoding="UTF-8" destdir="${outdir-classes}" bootclasspath="${android-jar41}" includeantruntime="on"> <src path="${library-dir3}/src" /> <src path="${outdir-gen}" /> <classpath> <fileset dir="${library-dir3}/libs" includes="*.jar" /> </classpath> </javac> <javac encoding="UTF-8" destdir="${outdir-classes}" bootclasspath="${android-jar}"> <src path="${project.home}/src" /><!-- 工程源码--> <src path="${outdir-gen}" /><!-- 生成的class文件全部保存到bin/classes目录下 --> <classpath> <fileset dir="${library}" includes="*.jar" /><!-- 第三方jar包需要引用,用于辅助编译 --> </classpath> </javac> </target> <!--执行代码混淆和优化 必须在java文件编译以后--> <target name="optimize" depends="compile"> <echo>optimize classes are put to "${out.absolute.dir}" .</echo> <jar basedir="${outdir-classes}" destfile="${outdir-bin}/temp.jar"/> <taskdef resource="proguard/ant/task.properties" classpath="${jar.proguard}" /> <proguard> -injars ${outdir-bin}/temp.jar -outjars ${outdir-bin}/optimized.jar -libraryjars ${android-jar} -optimizationpasses 5 -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -include proguard-project.txt </proguard> <delete file="${outdir-bin}/temp.jar"/> <delete dir="${outdir-classes}" failonerror="false" /> <mkdir dir="${outdir-classes}"/> <unzip src="${outdir-bin}/optimized.jar" dest="${outdir-classes}"/> <delete file="${outdir-bin}/optimized.jar"/> </target> <!-- 将.class文件转化成.dex文件 --> <target name="dex" depends="compile"> <echo>Converting compiled files and external libraries into ${outdir-dx}test.dex...</echo> <exec executable="${android-dx}" failonerror="true"> <arg value="--dex" /> <arg value="--output=${dex-ospath}" /><!-- 输出 --> <arg path="${outdir-classes}" /><!-- classes文件位置 --> <arg value="${library}" /> <!-- 把libs下所有jar打包 --> </exec> </target> <!-- 将资源文件放进输出目录 --> <target name="package-res-and-assets"> <echo>Packaging resources and assets...</echo> <exec executable="${android-aapt}" failonerror="true"> <arg value="package" /> <arg value="-f" /><!-- 资源覆盖重写 --> <arg value="-M" /> <arg value="${manifest-xml}" /> <arg value="-S" /> <arg value="${resource-dir}" /> <arg value="-S"/> <arg value="${library-dir1}/res"/> <arg value="-S"/> <arg value="${library-dir3}/res"/> <arg value="-A" /><!-- asset目录也打包 --> <arg value="${asset-dir}" /> <arg value="-I" /> <arg value="${android-jar}" /> <arg value="-F" /><!-- 输出资源压缩包 --> <arg value="${resources-package}" /> <arg value="--auto-add-overlay" /> </exec> </target> <!-- 打包成未签证的apk --> <target name="package" depends="dex,package-res-and-assets"> <echo>Packaging unsigned apk for release...</echo> <exec executable="${android-apkbuilder}" > <arg value="${out-unsigned-package-ospath}" /><!-- 输出 --> <arg value="-u" /><!-- u指创建未签名的包--> <arg value="-z" /><!-- 资源压缩包 --> <arg value="${resources-package-ospath}" /> <arg value="-f" /><!-- dex文件 --> <arg value="${dex-ospath}" /> <arg value="-nf"/><!-- 把libs下的so库打包 --> <arg value="${library}" /> </exec> <echo>It will need to be signed with jarsigner before being published.</echo> </target> <!-- 对apk进行签证 --> <target name="jarsigner" depends="package"> <echo>Packaging signed apk for release...</echo> <exec executable="${android-jarsigner}" failonerror="true"> <arg value="-keystore" /> <arg value="${keystore-file}" /> <arg value="-storepass" /> <arg value="111111" /><!-- 验证密钥完整性的口令,创建时建立的 --> <arg value="-keypass" /> <arg value="111111" /> <!-- 专用密钥的口令,就是key密码 --> <arg value="-signedjar" /> <arg value="${out-signed-package-ospath}" /><!-- 输出 --> <arg value="${out-unsigned-package-ospath}" /><!-- 未签名的apk --> <!-- 不要忘了证书的别名 --> <arg value="recyclersign" /> </exec> <echo message="签名成功" /> </target> <!-- 优化 --> <target name="optimize-app" depends="jarsigner"> <echo> optimizing the application...</echo> <exec executable="${android-zipalign}"> <arg value="-v" /> <arg value="-f" /> <arg value="4" /> <arg value="${out-signed-package-ospath}" /> <arg value="${zipalign-signed-package}" /> </exec> </target> <!-- 发布 --> <target name="release" depends="optimize-app"> <!-- 删除未签证apk --> <delete file="${out-unsigned-package-ospath}" /> <echo>APK is released. path:${out-signed-package-ospath}</echo> <copy file="${out-signed-package-ospath}" tofile="${outdir-package}"></copy> <echo>APK is copy to path:${outdir-package}</echo> </target> </project> ``` ```
请问一下,ant里面怎么引用第三方jar包啊?
想帮测试弄个简单点的替换代码的方法的。结果就卡死了。忧郁~~ 报错提示如下: BUILD FAILED /home/noc/workspace/22/build.xml:39: The following error occurred while executing this line: /home/noc/workspace/22/build.xml:23: Problem: failed to create task or type sshexec Cause: the class org.apache.tools.ant.taskdefs.optional.ssh.SSHExec was not found. This looks like one of Ant's optional components. Action: Check that the appropriate optional JAR exists in -/usr/share/ant/lib -/root/.ant/lib -a directory added on the command line with the -lib argument Do not panic, this is a common problem. The commonest cause is a missing JAR. This is not a bug; it is a configuration problem
ant 将不同路径jar 打到lib文件夹
首先我的工程引入的jar包放在文件夹commonLib下面的不同文件夹下, 比如commonLib/Birt/commons-net-1.4.1.jar,commonLib/others/dom4j-1.6.1.jar 现在我要用ant打包,要把这些jar包都打到lib文件夹下,lib下不要生成子目录 结果要这样lib/commons-net-1.4.1.jar,lib/dom4j-1.6.1.jar 起先我是直接copy commonLib,但发现生成的是这样的lib/Birt/commons-net-1.4.1.jar lib/others/dom4j-1.6.1.jar,这不是我想要的, 如果一个个拷贝commonLib下最高级的子目录是可以实现的,但这样太麻烦 了,
Android Ant 报资源找不到的错误,怎么解决
![Ant打包报错](https://img-ask.csdn.net/upload/201512/29/1451372350_821246.jpg) 工程依赖了一个v7包,使用ant打包时,生成R.java文件时报上面的错误,大神们怎么解决啊。急急急,在线等。
使用SDK和ant打包apk,高德地图的so文件打包不进apk,怎么解决啊
使用SDK和ant打包apk,高德地图的so文件打包不进apk,怎么解决啊
请教android工程使用ant打包时的文档结构问题
我最终需要用Unigine这个图像仿真引擎来开发一个Android端应用(我也不想用Unigine,是指定的-.-),是在pc上开发,然后Unigine sdk有提供针对android移植的部分,我按照文档来对Unigine提供的工程进行打包生成默认apk(这个apk安装之后也是之后我自己程序的入口)。 但我手头这个版本的Unigine提供的工程文档结构貌似有些问题,它的项目工程下面有三个目录,分别是activity、client和main,目标是需要把整个项目打包生成apk再安装,但根目录下没有AndroidManifest.xml文件,只有各个分目录下有。 我尝试把子目录activity进行打包,生成的包安装后就是com.unigine.activity。应该是把子目录都打包再整合还是统一打包?我猜需要自己对文档结构进行一些调整或者自己编写相关的脚本,但由于我从来没接触过Android开发,有点一头雾水,项目中涉及到这个部分,卡住很久了,向各位请教! 这也是我第一次在CSDN上发帖,有什么不合规范之处还请多多指教,我先把Unigine关于打包生成默认apk的部分文档和文件目录贴在这里,望各位不吝赐教! ![图片说明](https://img-ask.csdn.net/upload/201504/12/1428827577_119337.png) ![图片说明](https://img-ask.csdn.net/upload/201504/12/1428827588_227759.png) ![图片说明](https://img-ask.csdn.net/upload/201504/12/1428827607_288745.png) ![图片说明](https://img-ask.csdn.net/upload/201504/12/1428827570_919557.jpg) ![图片说明](https://img-ask.csdn.net/upload/201504/12/1428827578_126285.png)
Android ant自动集成打包出错
F:\adt-bundle-windows-x86-20140321\sdk\tools\ant\build.xml:653: The following error occurred while executing this line: F:\adt-bundle-windows-x86-20140321\sdk\tools\ant\build.xml:698: null returned: 1
大家在Ant脚本里, 谁引用过打在JAR包里的lib文件夹里的JAR文件作为ClassPath啊?
大家在Ant脚本里, 谁引用过打在JAR包里的lib文件夹里的JAR文件作为ClassPath啊? 各位兄弟好,我有个Ant问题, 十分感谢! 我写了个Eclipse插件, 并打包发布在安装MyEclipse的根目录下./MyEclipse/eclipse/plugins/MyPlugin.jar. 此插件依赖于另一个存着所有第三方依赖JAR包的插件MyThirdLibPlugin.jar. 我也把这个插件打包放在安装MyEclipse的根目录下./MyEclipse/eclipse/plugins/MyThirdLibPlugin.jar. 然后用MyEclipse运行我这个./MyEclipse/eclipse/plugins/MyPlugin.jar(此插件依赖于MyThirdLibPlugin.jar) 因为MyPlugin.jar运行时,需要运行一段Ant脚本, 在Ant脚本里,第一个Target就要读取所需的所有依赖JAR包, 也就是设置 classpath, 如下: <target name="prepare"> <path id="project.classpath1"> <pathelement path="${jdbc.jar}"/> <fileset dir="${lib.dir}" includes="*.jar"/> </path> <path id="project.classpath2"> <fileset dir="${lib.dir}" includes="*.jar"/> </path> </target> 因为这些依赖的JAR包, 我都打包在上面所说的MyPlugin.jar所依赖的MyThirdLibPlugin.jar包的lib目录下 ./MyEclipse/eclipse/plugins/MyThirdLibPlugin.jar:lib/ 我的问题是, 在给"${lib.dir}"传值时, 在前面的Property里, 我传递的这个"${lib.dir}", 可以如下这么些吗? <property name="lib.dir" value="C:/Program Files/MyEclipse 6.0/eclipse/plugins/MyThirdLibPlugin.jar:lib" /> 我在看Ant的官方开发指南, 有这么段: public class Path extends DataType implements java.lang.Cloneable This object represents a path as used by CLASSPATH or PATH environment variable. <sometask> <somepath> <pathelement location="/path/to/file.jar" /> <pathelement path="/path/to/file2.jar:/path/to/class2;/path/to/class3" /> <pathelement location="/path/to/file3.jar" /> <pathelement location="/path/to/file4.jar" /> </somepath> </sometask> 因为Ant所依赖的JAR包都放在要运行的MyPlugin.jar所依赖的MyThirdLibPlugin.jar包的lib目录下. 我上面这么写对吗? 有语法错误吗? Ant可以识别这个目录吗? 如果不这么写, 那这种情况吗应该怎么写啊?
ant build打包问题,求指教。
一般uiautomator打包的时候,首先进入到需要生成jar文件的路径,可不可以在任意路径,通过ant build指定一个参数,然后使生成的jar文件到指定路径下,类似于android create uitest-project -n default -t 1 -p xxx路径,类似于这个-p这个参数。在ant中如何实现。求指教。
android ant 混淆 打包问题
请问大神们这可能是什么原因导致的呢?在线等。。。
openfire源码二次开发,打包到tomcat,基于源码自带的ant打包
openfire源码下载后,整合到eclipse完成;服务器正常,客户端可访问; 我现在想修改openfire的源码,并且将这个项目放到tomcat运行; 由于openfire的源码项目目录与普通项目不同,是个jave项目,且通过ant启动; 我想在openfire根目录配置2个文件夹,里面是测试服务器以及正式服务器的配置信息,根据openfire自己的build.xml的文件,再重新编写2个打包文件; 这样开发测试可根据不同的ant文件执行打包不同的war 普通项目目录如下: ![想要创建放置不同配置的根目录](https://img-ask.csdn.net/upload/201503/04/1425460286_328871.png) ![可以根据需要执行的ant文件](https://img-ask.csdn.net/upload/201503/04/1425460366_102471.png)
gradle打包android程序时,如何修改java文件中的属性值
工程有个文件例如1.java文件:其中有个public final static String URL = "/www.baidu.com"; 现在的问题是如何在用gradle打包的时候可以更换1.java文件中的URL? ant打包就可以写不同的build.xml,在build.xml中更换URL的字符串,在利用ant构建的时候通过编译不同的build.xml来达到更换URL的目的。 现在不知道gradle是否也可以在构建的时候修改java文件中的内容呢? (例如gradle1.properties、gradle2.properties) 根据不同的编译选项打包出不同的apk,而这些apk的唯一不同就是1.java文件中的URL换掉了。
ant 打包,编译出错问题,求解!!!
-dex: input: E:\domobgit\sos_lockscreen\HuaZhuan\bin\proguard\obfuscated.jar Converting compiled files and external libraries into E:\domobgit\sos_lockscreen\HuaZhuan\bin\classes.dex... [dx] 'C:\Program' �����ڲ����ⲿ���Ҳ���ǿ����еij��� [dx] �������ļ��� E:\eclipse1\adt-bundle-windows-x86_64_20140101\adt-bundle-windows-x86_64_20140101\sdk\tools\ant\build.xml:881: The following error occurred while executing this line: E:\eclipse1\adt-bundle-windows-x86_64_20140101\adt-bundle-windows-x86_64_20140101\sdk\tools\ant\build.xml:883: The following error occurred while executing this line: E:\eclipse1\adt-bundle-windows-x86_64_20140101\adt-bundle-windows-x86_64_20140101\sdk\tools\ant\build.xml:895: The following error occurred while executing this line: E:\eclipse1\adt-bundle-windows-x86_64_20140101\adt-bundle-windows-x86_64_20140101\sdk\tools\ant\build.xml:290: null returned: 1 at org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:551) at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:401) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:390) at org.apache.tools.ant.Target.performTasks(Target.java:411) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) at org.apache.tools.ant.Project.executeTarget(Project.java:1368) at cn.domob.tools.AntForJar.runTarget(AntForJar.java:55) at cn.domob.tools.AntForJar.main(AntForJar.java:90) ---------ant批量自动化打包中发生异常---------- 发生异常时间为:2015-03-31:16:41:33 耗费时间为:0天0小时0分52秒 Caused by: E:\eclipse1\adt-bundle-windows-x86_64_20140101\adt-bundle-windows-x86_64_20140101\sdk\tools\ant\build.xml:883: The following error occurred while executing this line: E:\eclipse1\adt-bundle-windows-x86_64_20140101\adt-bundle-windows-x86_64_20140101\sdk\tools\ant\build.xml:895: The following error occurred while executing this line: E:\eclipse1\adt-bundle-windows-x86_64_20140101\adt-bundle-windows-x86_64_20140101\sdk\tools\ant\build.xml:290: null returned: 1 at org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:551) at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:401) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) at com.android.ant.IfElseTask.execute(IfElseTask.java:120) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398) ... 12 more Caused by: E:\eclipse1\adt-bundle-windows-x86_64_20140101\adt-bundle-windows-x86_64_20140101\sdk\tools\ant\build.xml:895: The following error occurred while executing this line: E:\eclipse1\adt-bundle-windows-x86_64_20140101\adt-bundle-windows-x86_64_20140101\sdk\tools\ant\build.xml:290: null returned: 1 at org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:551) at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:401) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) at com.android.ant.IfElseTask.execute(IfElseTask.java:124) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) at com.android.ant.IfElseTask.execute(IfElseTask.java:124) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398) ... 34 more Caused by: E:\eclipse1\adt-bundle-windows-x86_64_20140101\adt-bundle-windows-x86_64_20140101\sdk\tools\ant\build.xml:290: null returned: 1 at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:646) at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:672) at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:498) at com.android.ant.DexExecTask.runDx(DexExecTask.java:271) at com.android.ant.DexExecTask.execute(DexExecTask.java:227) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398) ... 64 more 尝试了很多办法,还是不知道具体怎么解决。
jenkins maven android项目打包apk
RT,在jenkins如何打包maven管理的android项目。 ant打包已经试过,没有效果,这个只能打包自由风格的项目吧; maven应该可以打包android项目的,只要配置好pom.xml文件,结果报错了 我是根据这篇文章配置的pom.xml,命令行运行mvn clean package报错 unknown <packaging>apk</packaging> 在jenkins报错: [INFO] /bin/sh: /root/android-sdk-macosx/build-tools/19.1.0/aapt: cannot execute binary file [ERROR] Error when generating sources. org.apache.maven.plugin.MojoExecutionException: at com.jayway.maven.plugins.android.phase01generatesources.GenerateSourcesMojo.generateR(GenerateSourcesMojo.java:745) 。。。 Caused by: com.jayway.maven.plugins.android.ExecutionException: ANDROID-040-001: Could not execute: Command = /bin/sh -c cd /root/.jenkins/workspace/apos && /root/android-sdk-macosx/build-tools/19.1.0/aapt package -m -J /root/.jenkins/workspace/apos/target/generated-sources/r -f --no-crunch -M /root/.jenkins/workspace/apos/AndroidManifest.xml -S /root/.jenkins/workspace/apos/res --auto-add-overlay -A /root/.jenkins/workspace/apos/target/generated-sources/combined-assets -I /root/android-sdk-macosx/platforms/android-17/android.jar --output-text-symbols /root/.jenkins/workspace/apos/target, Result = 126 为什么jenkins会报错无法执行命令,而在命令行运行mvn clean package时却unknown apk。。 求教~
如何让测试人员使用ant对android studio的项目进行自动打包?
1.测试人员自动打包使用 2。不使用as开发工具来打包 3.更新svn的代码,使用ant打包apk 4.可以更改测试环境的配置,需要签名打包 5.求高手指导。。。
jenkins 集成 ant打包错误
ant 内容 <?xml version="1.0" encoding="UTF-8"?> <project name="gshGS" default="war" basedir="."> <property name="classes" value="build/classes"/> <property name="build" value="build"/> <property name="lib" value="WebRoot/WEB-INF/lib"/> <!-- 删除build路径 <target name="clean"> <delete dir="build"/> </target>--> <!-- 建立build/classes路径,并编译class文件到build/classes路径下 depends="clean"--> <target name="compile"> <mkdir dir="${classes}"/> <javac srcdir="src" destdir="${classes}" encoding="UTF-8"/> </target> <!-- 打war包--> <target name="war" depends="compile"> <war destfile="${build}/gshGS.war" webxml="WebRoot/WEB-INF/web.xml"> <!-- 拷贝WebRoot下除了WEB-INF和META-INF的两个文件夹--> <fileset dir="WebRoot" includes="**/*.jsp"/> <!-- 拷贝lib目录下的jar包--> <lib dir="${lib}"/> <!-- 拷贝build/classes下的class文件--> <classes dir="${classes}"/> </war> </target> </project> 单独cmd 运行ant 可以打包 用上jenkins 之后就报一个错. 如: Started by user luis Building in workspace C:\Users\JOJO\.jenkins\workspace\Ant_test Updating http://192.168.1xxxx:8080/svn/gsh/GSH3.0/Software/gshGS at revision '2015-08-05T16:53:21.003 +0800' At revision 9564 no change for http://192.168.1xxxx:8080/svn/gsh/GSH3.0/Software/gshGS since the previous build [Ant_test] $ cmd.exe /C '"D:\apache-ant-1.9.1\bin\ant.bat http://192.168.1.145:8080/svn/gsh/GSH3.0/Software/gshGS && exit %%ERRORLEVEL%%"' Buildfile: C:\Users\JOJO\.jenkins\workspace\Ant_test\build.xml BUILD FAILED Target "http://192.168.1xxx:8080/svn/gsh/GSH3.0/Software/gshGS" does not exist in the project "gshGS". --这里 Total time: 0 seconds Build step 'Invoke Ant' marked build as failure Finished: FAILURE -还有就是我jenkins创建任务的时候就是失败的的.! ![图片说明](https://img-ask.csdn.net/upload/201508/05/1438765308_300320.png)
ant打包一直提示log cannot be resolved
ant打包在javac编译的时候一直提示log cannot be resolved,用的是lombok的jar包,但是打开文件log已经编译上了,造成打包一直不成功,求教大神出现 build.xml <?xml version="1.0" encoding="UTF-8"?> <!-- 定义一个工程,默认任务为warFile。 --> <project name="hera_insure_v2" default="warFile" basedir="."> <!-- 定义属性,打成war包的名称。 --> <property name="warFileName" value="hera_insure_v2.war"/> <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/> <property name="ant.dir" value="D:/software/apache-ant-1.10.1/lib"/> <!-- 定义路径,编译java文件时用到的jar包。 --> <path id="project.lib"> <fileset dir="${basedir}/WebContent/WEB-INF/lib"> <include name="**/*.jar"/> </fileset> <fileset dir="${ant.dir}"> <include name="**/*.jar"/> </fileset> </path> <!-- 定义任务,清空任务:清空原有的class文件,创建新的build路径。 --> <target name="clean"> <delete dir="${basedir}/build" /> <mkdir dir="${basedir}/build" /> </target> <!--看官网这么写,自己改的--> <!-- <target name="javadoc" depends="clean"> <taskdef classname="lombok.delombok.ant.Tasks$Delombok" classpath="${basedir}/WebContent/WEB-INF/lib/lombok-1.16.6.jar" name="delombok" /> <mkdir dir="build/src-delomboked" /> <delombok verbose="true" encoding="UTF-8" to="${basedir}/build" from="${basedir}/src"> <format value="suppressWarnings:skip" /> </delombok> <javadoc sourcepath="${basedir}/src" defaultexcludes="yes" destdir="${basedir}/build" /> </target> --> <!-- 定义任务,编译src文件夹中的java文件,编译后的class文件放到创建的文件夹下。 --> <target name="compile" depends="clean"> <!--之前普通编译成功的--> <!-- <javac srcdir="${basedir}/src" destdir="${basedir}/build" includeantruntime="false" source="1.7" target="1.7"> <compilerarg line="-encoding UTF-8"/> <classpath refid="project.lib" /> </javac> --> <!--jdt编译--> <javac classpathref="project.lib" srcdir="${basedir}/src" destdir="${basedir}/build" compiler="org.eclipse.jdt.core.JDTCompilerAdapter" nowarn="false" debug="true" debuglevel="source,lines,vars" source="1.7" target="1.7" encoding="utf-8" fork="true" memoryMaximumSize="512m" includeantruntime="false"/> </target> <!--复制xml文件--> <target name="copy-xml-files" depends="compile"> <copy todir="${basedir}/build/cn/tk/hera/insure/core/"> <fileset dir="${basedir}/src/cn/tk/hera/insure/core/"/> </copy> </target> <!--复制配置文件--> <target name="copy-config-files" depends="copy-xml-files"> <copy todir="${basedir}/build/"> <fileset dir="${basedir}/resource/"/> </copy> </target> <!-- 定义默认任务,将class文件集合成jar包。 --> <target name="warFile" depends="copy-config-files"> <!-- 删除原有war包。 --> <delete dir="${basedir}/${warFileName}" /> <!-- 建立新war包。 --> <war destfile="${basedir}/${warFileName}" webxml="${basedir}/WebContent/WEB-INF/web.xml"> <!-- 将非jar和非class文件拷贝到war包的对应路径下。 --> <fileset dir="${basedir}/WebContent"> <include name="**/**.*" /> <exclude name="**/*.jar"/> <exclude name="**/*.class"/> </fileset> <!-- 将jar和class文件拷贝到war包的对应路径下。 --> <lib dir="${basedir}/WebContent/WEB-INF/lib" /> <classes dir="${basedir}/build"/> </war> </target> </project> 编译还是log不能解析 log是lombok的,所以lombok不能编译导致的
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch
深深的码丨Java HashMap 透析
HashMap 相关概念 HashTab、HashMap、TreeMap 均以键值对像是存储或操作数据元素。HashTab继承自Dictionary,HashMap、TreeMap继承自AbstractMap,三者均实现Map接口 **HashTab:**同步哈希表,不支持null键或值,因为同步导致性能影响,很少被使用 **HashMap:**应用较多的非同步哈希表,支持null键或值,是键值对...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
JDK12 Collectors.teeing 你真的需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????): 管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
相关热词 c# clr dll c# 如何orm c# 固定大小的字符数组 c#框架设计 c# 删除数据库 c# 中文文字 图片转 c# 成员属性 接口 c#如何将程序封装 16进制负数转换 c# c#练手项目
立即提问