我有一个Android项目,在git下管理。
Git有2个分支(更多......但重要的是那两个),branch-a&分支-B。
是否可以设置gradle来确定项目构建的分支,并在项目的某个类中设置public static String
以取决于分支的值?
感谢。
答案 0 :(得分:4)
是的,您的两个分支中都可能有一个gradle.properties
文件(您可以阅读有关属性here),包含一些属性,例如buildBranchName
。但是,分配给此属性的值在每个brach中都会有所不同。例如,在brach1中,gradle.properties文件与build.gradle脚本位于同一目录中,并且具有
buildBranchName=branch1
里面的属性。同时,branch2中的gradle.properties文件包含:
buildBranchName=branch2
然后,由于您有一个android项目,您可以使用BuildConfig
类生成选项将此变量传递给您的应用程序源。您可以在“增强BuildConfig”部分中了解它here。您所需要的只是为构建类型的自动生成类添加一些属性,如:
android {
...
buildTypes {
debug {
buildConfigField "String", "BUILD_BRANCH", buildBranchName
}
...
}
}
然后,在构建期间,将生成最终的类BuildConfig
并且它将具有BUILD_BRANCH
字段,您可以将其用作此类的简单静态字段。
此外,如果某些人有一个非android项目,那么有plugin,它允许对所有java项目执行相同的操作。
答案 1 :(得分:2)
是的,您可以通过向项目中添加风味来实现这一目标
e.g。
class TimelineFeedViewController: PFQueryTableViewController {
var userLike = PFUser.currentUser()?.relationForKey("likes")
@IBAction func likeButtonTapped(sender: UIButton) {
// The following code has errors - for example, `object` is an unresolved
// identifier (it's supposed to be a PFObject that holds a post at a specific
// indexPath)
// Also, I cant access the likeButton for some reason. Only when I do
// cell.likeButton in `cellForRowAtIndexPath`.
// If the button is liked already (it's filled)
// Toggle likeButton image to UNfilled version
// "if likeButton isLiked == true" below is pseudocode of what I am trying to do
if likeButton isLiked == true {
let image = UIImage(named: "likeButtonUnfilled")
cell.likeButton.setImage (image, forState: UIControlState)
// Decrement the likeCount
object!.decrementKey("count")
// Remove the relation bet user and post
self.userLike?.removeObject(object!)
} else {
// the button is NOT liked already (it's not filled)
// toggle the image to the filled version
let image = UIImage(named: "likeButton")
cell.likeButton.setImage (image, forState: UIControlState)
// Increment the likeCount
object!.incrementKey("count")
// Add the relation bet. user and post
self.userLike?.addObject(object!)
}
object!.saveIngBackground()
PFUser.currentUser()?.saveInBackground()
self.tableView.reloadData()
}
}
现在可以像这样访问这个值
e.g。
devtools::run_examples()
如有任何问题,请告诉我