是否可以有两个 Entitlements.plist 文件,以便调试器可以附加的一个与调试构建配置相关联,而没有的一个与发布配置相关联?
我最近被分配了一项任务,让 ant 能够为不同的环境构建战争包。除了一项功能外,我几乎完成了。
蚂蚁env通过 like接受一个参数-Denv=DEV,并使用不同的配置文件来制作 war 包。但默认目标是start构建、部署和启动 tomcat。当我传入-Denv=PRODarg时,我不希望 ant 部署战争也不启动服务器。我只想用蚂蚁来构建ROOT.war。够了。
我知道我可以再输入一个词来实现这个目标,但你知道我们都很懒惰。:D
有谁知道如何根据命令行参数更改默认目标?我的要求如下:
ant -Denv=DEV 将构建、部署和启动服务器ant -Denv=PROD 只会构建 ROOT.war在几个项目中,我看到了没有 Makefile.am 的 Makefile.in 。例如 bash http://git.savannah.gnu.org/cgit/bash.git/tree/和 dtach http://dtach.cvs.sourceforge.net/viewvc/dtach/dtach/
一直以为Makefile.in是automake生成的。此外,由于 Makefile.am 是用户编写的文件,我不会认为它会从代码存储库中省略。在 bash 源代码树中,Makefile.in 太大而无法手写,而 dtach 中的 Makefile.in 看起来也是生成的。像这两个项目中的 Makefile.in 是如何生成的?
我有一个 C++ 项目,我想使用 Travis CI 为其自动化构建。
该项目使用 GNU make 构建。有多个构建目标,它们彼此独立,我想使用 Travis CI 自动检查每个目标的构建成功。因此,我希望为每个提交运行多个 Travis 构建,每个目标一个。
我可以这样做的一种方法是:
script:
- make target1
- make target2
- make target3
Run Code Online (Sandbox Code Playgroud)
但是,这可能会隐藏一些问题,例如target2仅在target1已经构建的情况下构建成功。
一个替代方案可能是:
script:
- make target1
- make clean
- make target2
- make clean
- make target3
Run Code Online (Sandbox Code Playgroud)
这看起来有点难看,而且可能需要比需要更多的时间。在构建错误target3无法找到,直到target1和target2成功建成。
更好的方法可能是使用 Travis 的构建矩阵功能,这是我一直无法做到的。我尝试了以下方法:
matrix:
- script: make target1
- script: make target2
- script: make target3
Run Code Online (Sandbox Code Playgroud)
但这不起作用。C++ 的 Travis 文档表明矩阵可以交错不同的环境和编译器,我无法找到单独运行不同脚本的任何方法。这可以以某种方式与环境一起指定吗?
这可能吗?如果是这样,这样做的正确方法是什么?
谢谢你。
有没有办法使用.bat/.cmd文件获取字符串的子字符串?
例如,给定字符串"hello.txt"有没有办法剥离.txt?
编辑:还有一种更通用的方法来做到这一点,而不是假设它是一个文件名或文件路径?
我正在尝试将-lib参数传递给ant,作为使用Hudson的自动构建的一部分,但是看不到这样做的方法.我可以将相关库添加到ant/lib文件夹,但这意味着该库的所有版本必须共享该库的相同版本.
任何帮助非常感谢.
我有一个简单的库为我生成标题,我希望在Makefile中将它链接在一起.
如果cpp文件包含不存在的头文件,它应该从匹配的源文件生成它(如果相应的文件存在).我无法弄清楚如何做到这一点.
我已经尝试使用gcc -MM提前找出每个.cpp文件的依赖关系,但如果缺少标头,则会失败.我需要知道哪些文件丢失以尝试重新生成它们.
如果我只是定义了一个标题prequisite所有.cpp文件,它总是会重新编译所有的,当然我的.cpp文件.
有关如何重新生成缺少的标头的任何想法?
是否可以从Ant启动Gradle任务?这可以在Gant中使用taskdef.
<taskdef
name = "gant"
classname = "org.codehaus.gant.ant.Gant"
classpathref = "classpath"
/>
<gant />
Run Code Online (Sandbox Code Playgroud)
Gradle有类似的东西吗?我很想开始从Ant迁移到Gradle,但我们有一个大型的Ant基础架构,我创建的任何Gradle构建脚本都需要从Ant调用.
谢谢!
在tfs.visualstudio.com上使用托管的Team Foundation Service,可以在构建定义中选择"将构建输出复制到服务器",这将创建drop文件夹的zip,可以通过团队Web访问通过https下载.我真的需要自动下载这个drop,所以我可以将输入链接到我的构建管道中的下一个阶段.
不幸的是,丢弃URL并不明显,但可以使用TfsDropDownloader创建.
TL; DR - 我无法让TfsDropDownloader工作,我希望其他人使用此工具或类似的方法从https://tfs.visualstudio.com成功下载drop
使用命令行TfsDropDownloader.exe我可以这样做:
TfsDropDownloader.exe /c:"https://MYPROJECTNAME.visualstudio.com/DefaultCollection" /t:"ProjectName" /b:"BuildDefinitionName" /u:username /p:password
Run Code Online (Sandbox Code Playgroud)
...获取一个空的zip文件,其中包含上一次成功构建的正确构建标签名称,例如BuildDefinitionName_20130611.1.zip
在调试器中运行源代码,这是因为为下载而生成的URL:
https://tflonline.visualstudio.com/DefaultCollection/_apis/resources/containers/804/drop/BuildDefinitionName_20130611.1.zip
Run Code Online (Sandbox Code Playgroud)
..返回不受支持的application/json的内容类型.应用程序吞下此异常,但在创建空zip文件之前不会.
Team Foundation Service上的REST API是否可能以某种方式更改,因此生成的URL不再正确?
请注意,我使用的是我的Team Foundation Service帐户中定义的"备用凭据"(即不是我的实时ID) - 使用其他任何内容都可以获取TF30063:未经授权.
build-automation continuous-integration continuous-deployment azure-devops
build-automation ×10
ant ×3
build ×3
makefile ×2
autotools ×1
azure-devops ×1
batch-file ×1
c ×1
dependencies ×1
dos ×1
gradle ×1
hudson ×1
iphone ×1
java ×1
perl ×1
travis-ci ×1
xcode ×1