Blo*_*oss 0 gradle continuous-deployment jenkins gradlew flutter
如何为 Jenkins Android 项目生成 gradlew 文件?我的项目不是 Android Native。我的项目是 Flutter。
我尝试使用 Jenkins 创建 CD,但出现了一些错误。
这是我的管道代码 (JenkinsFile)
stage('Build Release APK') {
sh "ls ./android"
sh "./android/gradlew clean assembleRelease"
}
Run Code Online (Sandbox Code Playgroud)
ls 输出是,(没有gradlew
文件)
ls ./android
app
build.gradle
gradle
gradle.properties
key.properties
settings.gradle
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误
./android/gradlew clean assembleRelease
/Users/donperera/.jenkins/workspace/demo@tmp/durable-b0592b49/script.sh: line 1: ./android/gradlew: No such file or directory
Run Code Online (Sandbox Code Playgroud)
有没有办法用Jenkins构建apk/aap?
可以使用这个插件吗?但我已经添加了这个。但不是在我的脚本中。https://guides.gradle.org/executing-gradle-builds-on-jenkins/
gradlew
或者gradlew.bat
是 Gradle 的可执行文件,可用于执行gradle命令。
gradlew
或gradlew.bat
使用gradle/wrapper/gradle-wrapper.jar
文件执行。
所以有3个文件在播放:
gradlew
适用于mac和linuxgradlew.bat
用于窗户gradle/wrapper/gradle-wrapper.jar
这里的问题是,这些文件在您创建flutter项目时已经存在。但是,这些文件被忽略由.gitignore
默认的项目。所以这些文件在您的CI/CD服务器中将不可用。
当它是一个颤振项目时,你不需要它们来构建你的项目。您需要安装 flutter SDK。您可以使用 flutter SDK 来构建您的项目。使用以下命令进行发布构建 [您可能需要为Jenkins服务器设置 flutter SDK ]:
flutter build apk --release
Run Code Online (Sandbox Code Playgroud)
它将在assembleRelease
内部运行并生成您的 APK 文件。
如果您想按照自己的方式进行操作,则可以通过从.gitignore
文件中删除它们的引用并将其推送到您的存储库来将这 3 个文件添加到版本控制中。然后,您将在Jenkins工作区中拥有这些文件。gradlew
如果您使用的是mac或linux,则必须授予执行权限,这可以通过以下命令完成。
chmod +x ./gradlew
Run Code Online (Sandbox Code Playgroud)
然后您可以使用以下命令来构建您的应用程序:
./gradlew clean assembleRelease
Run Code Online (Sandbox Code Playgroud)
注意:不推荐使用方法 2,因为当您运行 flutter 命令时,它会将一些属性设置为从
pubspec.yaml
文件中gradle,如version name
,version code
。因此,如果您对pubspec.yaml
文件进行了更改并且之后没有运行 flutter 命令,那么gradlew
直接运行将不会包含这些更改。在这种情况下,您的 apk 可能使用旧版本构建,或者甚至可能没有构建,因为它从local.properties
文件中读取版本信息,该文件由 flutter 命令自动修改,并且默认情况下从版本控制中排除。因此,您还必须local.properties
通过从.gitignore
非常非常脏的文件中删除其引用来添加文件,因为它具有 android SDK 的位置引用,而您的服务器可能在该位置没有 android SDK。你需要再次解决这个问题。所以不要使用这种方法。
归档时间: |
|
查看次数: |
1139 次 |
最近记录: |