如何为我的所有Android项目设置gradle属性?

时间:2018-07-24 10:42:02

标签: android gradle android-gradle build.gradle

如何为我所有的Android项目设置gradle属性? 我有不同的android projetcs,但是每当我更改project文件夹中的gradel.properties文件时,它只会影响该项目。 而且我无法在根目录的.gradle文件夹中找到gradle.properties。   如何为所有项目设置通用属性,这样我就不必每次都更改。

5 个答案:

答案 0 :(得分:2)

Gradle在gradle.properties目录的GRADLE_USER_HOME文件中支持系统范围的属性,该文件默认为您的主目录中的名为.gradle的文件夹。 C:\Users\<user>\.gradle在Windows上。

这些系统特定的属性可能会覆盖项目特定的属性,因此它们只能用于指定本地计算机的用户名和密码。

此全局gradle.properties默认情况下可能不存在,但是即使不存在,您也可以创建一个全局init.d并将其使用,并且这些属性将在您的构建脚本中提供。

如果全局设置需要的逻辑不仅仅是普通属性,则可以使用初始化脚本,该脚本可以放置在同一位置(或 RemoveHandler cbxFreq.CheckedChanged, AddressOf cbxFreq_CheckedChanged ' May be neater way to do this!!! RemoveHandler cbxCap.CheckedChanged, AddressOf cbxCap_CheckedChanged RemoveHandler cbxInd.CheckedChanged, AddressOf cbxInd_CheckedChanged RemoveHandler cbxImp.CheckedChanged, AddressOf cbxImp_CheckedChanged For Each ctrl As Control In container.Controls DirectCast(ctrl, CheckBox).Checked = False Next AddHandler cbxFreq.CheckedChanged, AddressOf cbxFreq_CheckedChanged AddHandler cbxCap.CheckedChanged, AddressOf cbxCap_CheckedChanged AddHandler cbxInd.CheckedChanged, AddressOf cbxInd_CheckedChanged AddHandler cbxImp.CheckedChanged, AddressOf cbxImp_CheckedChanged End Sub For Each ctrl In Me.Controls If TypeOf ctrl Is Forms.TextBox Or TypeOf ctrl Is Forms.Label Then ctrl.Visible = False End If Next 子目录)。

答案 1 :(得分:1)

对于MacOS用户:

  1. 打开终端并输入public partial class AddingPage : ContentPage { AdLogEntry adLogEntry = new AdLogEntry(); //CameraService cameraService = new CameraService(); public byte[] imageAsBytes; public string pathLabel; private const int MaxColumns = 3; private int _currentRow = 0; private int _currentColumn = 0; public AddingPage() { InitializeComponent(); } protected override async void OnAppearing() { base.OnAppearing(); await MainProgressBar.ProgressTo(0, 250, Easing.Linear); ; } private async void NextStep_Clicked(object sender, EventArgs e) { await Navigation.PushAsync(new Informations()); } private async void TakePicture_Clicked(object sender, EventArgs e) { await TakePicture(); } private async Task TakePicture() { MediaFile file = null; await CrossMedia.Current.Initialize(); if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported) { await DisplayAlert("Nemáme přístup", "Nelze nalézt kameru", "OK"); return; } var imageSource = await DisplayActionSheet("Foto", "Cancel", null, new string[] { "Pořídit novou fotku", "Nahrát foto z galerie" }); var photoName = Guid.NewGuid().ToString() + ".jpg"; switch (imageSource) { case "Pořídit novou fotku": file = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions { SaveToAlbum = true, Directory = "Photos", Name = photoName }); //Get the public album path var aPpath = file.AlbumPath; //Get private path var path = file.Path; break; case "Nahrát foto z galerie": file = await CrossMedia.Current.PickPhotoAsync(); //Directory.GetFiles( "Photos"); break; default: break; } if (file == null) return; // Photo => Grid _currentColumn++; if (_currentColumn > MaxColumns - 0) { _currentColumn++; _currentRow++; // Add a new row definition by copying the first row. ImageGridContainer.RowDefinitions.Add(ImageGridContainer.RowDefinitions[0]); } var newImage = new Image() { Source = ImageSource.FromFile(file.Path), VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, Aspect = Aspect.AspectFill, Scale = 0 }; ImageGridContainer.Children.Add(newImage, _currentColumn, _currentRow); await Task.Delay(250); await newImage.ScaleTo(1, 250, Easing.SpringOut); }
  2. 执行cd ~/.gradle检查ls是否已经存在
  3. 如果不存在,请创建一个:gradle.properties
  4. 如果存在,只需修改要修改的配置并保存。

答案 2 :(得分:0)

文档:

  

项目属性从父项目继承到子项目。

根项目

ext{
    supportLibVersion = '25.3.1'

    //supportLib
    supportLib = "com.android.support:support-v4:$supportLibVersion"
}

子项目:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    //supportLib
    compile rootProject.ext.supportLib
}

答案 3 :(得分:0)

这是答案

  

此全局gradle.properties默认情况下可能不存在,但即使不存在,您也可以创建一个,它将被使用,并且这些属性将在您的构建脚本中可用。

在C:\ Users \ user-name.gradle中创建一个,并将其命名为gradle.properties,不带任何扩展名。

答案 4 :(得分:0)

根据Gradle documentation,您可以通过环境变量设置项目属性。您需要做的就是在环境变量前加上ORG_GRADLE_PROJECT,Android Studio会将其作为所有Android(和Gradle)项目的项目属性加载。示例:

echo 'export ORG_GRADLE_PROJECT_foo=bar' >> ~/.zshenv

您可以在build.gradle文件中将其作为项目属性来访问:

def fooProperty = project.foo
println("Foo property is $fooProperty") // prints bar

注意:请确保在添加环境变量后重新启动Android Studio,以便正确加载属性。