说我的源在我的src /树中(可能在我的测试/树中)。说我只想编译那棵树的 一部分
。我可能要这样做的原因多种多样。仅作为示例,我可能想要创建最小的jar(不包括某些类),或者我想要最快的编译时间来进行编译。我绝对想编译所有依赖项!
可以使用以下命令从命令行轻松实现:
javac -d build/ -cp whatever -sourcepath src src/path/to/MyClass.java
现在,如何使用蚂蚁来做到这一点?javac ant
任务将编译所有内容:
将对源目录和目标目录进行递归扫描,以编译Java源文件。
可以使用excludes
和includes
参数,但为此存在问题。实际上,似乎必须显式设置所有includes
(不是自动的依赖关系查找),
甚至最糟糕的
是,exclude优先于include:
当同时使用包含和排除时,仅使用匹配至少一个包含模式且不匹配 任何 排除模式的文件/目录。
因此,您不能使用
<javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="classpath"
excludes="**/*.java" includes="src/path/to/MyClass.java" />
因为它不会编译任何东西:-(
有什么方法可以javac
用ant 实现这个简单的命令行?
编辑:谢谢您的回答,萨迪,我接受了,因为它的确以我想知道的方式工作。但是我有几条评论(太长了,无法在您的答案的评论字段中显示):
1)我确实阅读了文档(请参阅上面的链接),但尚不清楚includes
实际上您是否还排除了其他所有内容
2)当你只includes
蚂蚁记录类似
[javac] Compiling 1 source file to /my/path/to/build
即使依赖关系使其编译(远远超过一个)源文件。
为什么要排除和包含?如果您至少有一个包含,则只有在明确包含文件的情况下才编译文件。所以这应该工作:
<javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="classpath"
includes="src/path/to/MyClass.java" />
或更灵活地:
<javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="classpath">
<include name="src/path/to/MyClass.java"/>
<include name="src/path/to/AnotherClass.java"/>
</javac>
要在jar中仅包含某些包或类,请使用文件集属性
<jar jarfile="${outlib}/something.jar">
<fileset dir="${build.dir}">
<include name='src/path/to/classes' />
</fileset>
</jar>
同样,您可以使用多个包含来组合单独的程序包。尝试使用include并阅读文档,您一定会找到所需的答案。
编译solidity源代码 通过solc编译器编译solidity代码到字节码。你可以参考solidity安装文档在本地安装编译器。 编写solidity代码运行: $ solc <contract>.sol --bin --abi --optimize -o <output-dir>/ bin和ABI编译器参数都需要充分利用web3j中的智能合约。 bin,输出包含十六进制编码的solidit
问题内容: 现在显然,解析器本身并没有什么用(除了静态分析)。我想将转换应用于AST,然后将其编译回源代码。应用转换不是什么大问题,普通的Visitor模式应该可以。 我目前的问题是如何将AST编译回源代码。我基本上看到两种可能性: 使用一些预定义的方案编译代码 保留原始代码的格式,并仅在已更改的节点上应用1.。 现在,我想专注于1.,因为2.似乎很难完成(但是,如果您有关于此的提示,我想听听他们
有时,我们需要从源代码重新编译一个Kali包.幸运的是用APT下载源代码包,进行必要的修改后再用Debian工具重新编译是如此的简单.此例中,为了添加额外的Mifare Key硬编码到mifare格式化工具,我们将重新编译libfreefare这个包. 下载包的源代码 # Get the source package apt-get source libfreefare cd libfreefar
有些情况下,比如我们自己从Github下载了最新的代码,或者自己临时修改了一点代码,想要编译后的Build文件夹的内容,需要自行编译源码,这里介绍一下编译的方法 下载源码之后,可以发现根目录存在一个gulpfile.js文件,编译源码就是使用 gulp 编译的成果有四部分, – 生成Apps文件夹,包括helloworld程序和沙盒Sandcastle – 编译后的部署环境下的Cesium文件夹
如果你不知道怎么从 github 上下载 Nutz 的源代码,请看 从 Git 编译 一节 编译通常是个麻烦的问题,依赖关系啊,环境变量啊,等等,全是些没有技术含量的东 东,但是却能搞的你非常头疼。虽然编译 Nutz 是一个相对简单的工作 -- 它编译 的时候不需要依赖第三方 jar 包,但是还是有一些工作要做的。 从我个人的情况来看,我经常在如下三个环境下进行 Nutz 的开发: 公司 - Vi
我试图遵循下面提到的两个步骤: 1)下载的源代码 https://sourceforge.net/projects/hunspell/files/hyphen/2.8/hyphen-2.8.8.tar.gz/download 连字符-2.8.8$./example~/dev/smc/hyphenation/hi_in/hyph_hi_in.dic~/hi_sample.text 我已经下载并解压缩