标签: gradle-release-plugin

从 /tmp/gradle7963227675482339513.bin 中的二进制存储读取数据时出现问题(存在:true)

尝试将旧项目导入 android studio 时,Gradle refresh failed 错误。如何解决这个问题?谢谢。

错误:从 /tmp/gradle7963227675482339513.bin 中的二进制存储读取数据时出现问题(存在:true)

android gradle-release-plugin android-studio build.gradle android-gradle-plugin

20
推荐指数
1
解决办法
2621
查看次数

gradle-release插件+ maven发布插件

我正在创建gradle构建作为新的gradle用户,但我过去曾与maven合作过.

我正在尝试重现maven发布插件的操作:

  • 将分支版本更改为版本号(在svn提交)
  • 创建一个标签(在svn)
  • 在Nexus OSS中部署发布标记
  • 将分支版本更改为新的快照编号(在svn提交)

如你所见,我正在使用:

  • Nexus OSS作为版本存储库
  • SVN为scm
  • Gradle(2.8)

我试图用这两个插件实现我的目标:

  1. Gradle-release插件:

    • 将分支版本更改为版本号(在svn提交)
    • 创建一个标签(在svn)
    • 将分支版本更改为新的快照编号(在svn提交)

    命令行:gradle release

  2. 部署到Nexus的Maven Publish插件:

    命令行:gradle发布

任何想法如何生成一个版本并一次性自动部署到Nexus?

下面是我的build.gradle:

plugins {
    id 'net.researchgate.release' version '2.3.4'
}

apply plugin: 'maven-publish'


/*------------------------
----- PUBLISH PLUGIN -----
--------------------------
https://docs.gradle.org/current/userguide/publishing_maven.html
--------------------------*/
publishing {
    publications {
        maven(MavenPublication) {
            groupId mavenGroup
            artifactId mavenArtifact
            version version

            from components.java
        }
    }
    repositories {
        maven {
            if(project.version.endsWith('-SNAPSHOT')) {
                url "${nexusUrl}/content/repositories/repo-snapshots"
            } else {
                url "${nexusUrl}/content/repositories/repo-releases"
            }
            credentials …
Run Code Online (Sandbox Code Playgroud)

deployment publish release gradle gradle-release-plugin

9
推荐指数
1
解决办法
4757
查看次数

将发布过程从SNAPSHOT更改为内部版本号

目前我们正在使用axion-release-plugin来控制我们的发布过程.现在我们想放弃SNAPSHOT并在我们的发布过程中引入内部版本号.这样我们就可以实现CI.

基本上目前我们使用的是1.0.0-SNAPSHOT版本,现在我们需要一些来自Jenkins的1.0.0-BUILDNUMBER或1.0.BUILDNUMBER.

请提供我们可以使用gradle的任何解决方案或插件.

jenkins gradle-release-plugin build.gradle

8
推荐指数
1
解决办法
1007
查看次数

Android Studio,Gradle:如何自动将release.apk发布到svn存储库?

在Maven中,发布过程没有问题.由于我被迫使用带有Gradle的Android Studio,我希望实现与Eclipse和Maven相同的行为.我找到了一些非常好的Maven-like发布插件(https://github.com/researchgate/gradle-release),它几乎按预期工作,但它没有上传发布apk,虽然它正确创建了apk /app/build/outputs/apk和标记我的SVN存储库中的源代码.release文件夹仍为空.我甚至不确定这个插件是否可以做到这一点,因为它没有很好的文档,但我想我需要告诉这个插件要上传什么以及在哪里找到它.只有一个afterReleaseBuild.dependsOn uploadArchives.这是什么意思,我必须覆盖这个uploadArchives方法或Gradle中的这个意思?它似乎是内置的东西,因为如果我在我的脚本中编写并运行,Gradle构建不会抱怨gradlew release.显然插件已经知道存储库并且可以通过ssh连接,否则它无法创建标记,但似乎它不知道要上传什么,发布文件夹保持空白.与此同时,我试图通过许多其他Gradle尝试来解决这个问题,例如使用Maven插件,但后来我遇到SSH证书问题而没有解决方案,即使它有效,也不会是一个好的解决方案,因为我不喜欢不想创建pom.xml文件等,这本来就是一种解决方法.

目标是发布过程应该自动在svn存储库的releases文件夹中创建一个文件夹,该文件夹的名称与当前版本相同(因为它已在tags文件夹中工作,例如1.0.0)并将已发布的apk复制到已经重命名的apk中Gradle的myapp-app-1.0.0-release.apk,因为这是本地输出文件夹中包的名称.

这是我当前的gradle脚本,它可以在输出文件夹中生成release apk但不会将其上传到svn:

apply plugin: 'com.android.application'
apply plugin: 'net.researchgate.release'

def keystorePropertiesFile = rootProject.file("/home/myuser/.android/keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {
    lintOptions {
        //TODO remove this or set to true
        abortOnError false
    }

    signingConfigs {
        myapp_release_config {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }
    compileSdkVersion 24
    buildToolsVersion "24.0.1"

    packagingOptions {
        exclude 'META-INF/ASL2.0'
    }

    defaultConfig {
        applicationId "com.mydomain.myapp"
        minSdkVersion 9
        targetSdkVersion 24
        versionCode …
Run Code Online (Sandbox Code Playgroud)

gradle gradle-release-plugin android-studio

7
推荐指数
1
解决办法
1358
查看次数

Gradle将重复的启动脚本创建到bin目录中

我试图通过gradle创建多个启动脚本文件.但不知何故,一个特定的启动脚本文件正在重复.

startScripts.enabled = false
run.enabled = false

def createScript(project, mainClass, name) {
  project.tasks.create(name: name, type: CreateStartScripts) {
    outputDir       = new File(project.buildDir, 'scripts')
    mainClassName   = mainClass
    applicationName = name
    classpath       = jar.outputs.files + project.configurations.runtime

     doLast {
            def windowsScriptFile = file getWindowsScript()
            def unixScriptFile    = file getUnixScript()
        windowsScriptFile.text = windowsScriptFile.text.replace('%APP_HOME%\\lib\\conf', '%APP_HOME%\\conf')
            unixScriptFile.text  = unixScriptFile.text.replace('$APP_HOME/lib/conf', '$APP_HOME/conf')
    }
  }
  project.tasks[name].dependsOn(project.jar)

  project.applicationDistribution.with {
    into("bin") {
      from(project.tasks[name])
      fileMode = 0755
    }
  }
}



// Call this for each Main class you want to expose with an …
Run Code Online (Sandbox Code Playgroud)

java build-script gradle gradle-release-plugin build.gradle

5
推荐指数
1
解决办法
444
查看次数

使用 Gradle Release Plugin 的 SSH Git 访问

使用 Jenkins 管道,我将存储库 URL 从 http 更改为 ssh git 访问。这样做之后,这项工作不再起作用(在此之前一切正常)。

在日志下方:

:xxxxxx:checkUpdateNeeded
Running [git, remote, update] produced an error: [Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
error: Could not fetch origin]
:xxxxxx:checkUpdateNeeded FAILED
:release FAILED
Release process failed, reverting back any changes made by Release Plugin.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':checkUpdateNeeded'.
> Failed to …
Run Code Online (Sandbox Code Playgroud)

git ssh jenkins gradle-release-plugin

5
推荐指数
1
解决办法
1579
查看次数

Gradle release插件,用于在build.gradle中存储版本

我正在将我的应用程序从maven转换为gradle,我正在寻找maven-release-plugin替代gradle.

我需要的插件是:

  • 从版本中删除'-SNAPSHOT'后缀并提交到git repo
  • 在此提交上创建新的git标记
  • build.gradle中的bump版本(如pom.xml),并添加'-SNASPHOT'后缀

我想,最受欢迎的是Gradle Release Plugin(https://github.com/researchgate/gradle-release).它工作正常,但是,它将版本存储在单独的文件"gradle.properties"中.我需要将此版本存储在"build.gradle"文件中(就像pom.xml中的版本一样).

我还测试了以下插件,但它们也没有在build.gradle中存储版本:

是否有任何Gradle插件可以使用"build.gradle"文件中的版本?

release gradle maven gradle-release-plugin

4
推荐指数
1
解决办法
3676
查看次数

为什么Jenkins改变了我的gradlew,以及如何防止这种情况发生?

我正在尝试使用gradle release-plugin "释放"我的项目

该插件首先检查我的工作副本是否干净,以便只发布正确版本的东西.

这在我的本地机器上工作得很好.但是,当我在Jenkins工作中尝试相同的事情时,构建失败抱怨工作场所中的各种内容发生了变化.我决定jenkins在内部使用很多东西并将其添加到gitignore:

caches/
native/
wrapper/
Run Code Online (Sandbox Code Playgroud)

但它也认为gradlew已经改变:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':checkCommitNeeded'.
> You have uncommitted files:
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   M gradlew
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

詹金斯为什么要更改该文件如何防止这种情况?

我认为Jenkins作业的以下设置可能是相关的:

  • Checkout/merge to local branch (optional)设置为主.如果没有此设置,发布插件会抱怨不在分支上

  • Clean after checkout 目前已经过检查,但检查/取消选中它并没有什么区别

  • Make gradlew executable 检查,至少对我来说听起来像是一个可能的原因,但取消选中它会使构建失败因为gradlew不可执行

gradle jenkins gradlew gradle-release-plugin

3
推荐指数
1
解决办法
1616
查看次数

Gradle 子项目版本控制

我们目前正在将项目从 Maven 迁移到 gradle。我们的设置如下所示:

  • 父pom项目
    • 子项目1
    • 子项目2(编译依赖1)
    • 子项目3(编译依赖2和1)

所有这些 Maven 子项目都是独立版本的

对于 Maven,我们使用版本插件,这确保我们设置(使用插件)子项目 1 的版本,新版本会传播到整个子树(并且 2 和 3 中的相应依赖项也会更改)。

我正在寻找gradle 发布插件bud 的文档,但找不到有关此功能的提及。它支持它吗,或者有其他插件支持吗?

第二个问题,由于我们正处于 maven-gradle 迁移过程中,是否可以将 maven 版本插件与任何此类 gradle 插件结合起来?(在 maven 中拥有 1 个版本,在 gradle 中拥有 2 和 3 个版本,但仍然可以实现该行为)。我的猜测不是,只是问一下,如果有人没有找到解决方案:-),所以我们不必一下子做 maven -> gradle 。

提前致谢!

gradle maven gradle-release-plugin

3
推荐指数
1
解决办法
2811
查看次数

Gradle 发布插件,用于 Maven 发布等功能

我正在将现有的 Maven 项目转换为 Gradle,我想使用 Maven 发布插件的替代方案。主要是版本切掉后删除快照和自增1的功能。我遇到使用researchgate gradle-release-plugin,但需要确定如何使用它来实现上述类似maven 的功能。

我第一次尝试并浏览了以下网址: https: //github.com/researchgate/gradle-release

maven-release-plugin gradle-release-plugin gradle-plugin

3
推荐指数
1
解决办法
3048
查看次数

gradle发布插件自动版本模式

我正在与詹金斯一起使用gradle-release-plugin,我想使用

gradle release -Prelease.useAutomaticVersion=true
Run Code Online (Sandbox Code Playgroud)

自动增加版本。

但这会自动移动“ .patch”数字(假定major.minor.patch版本),而我正在尝试移动“ .minor”数字。

例如,如果发布1.3.17,则newVersion 1.4.0-SNAPSHOT

我将不使用release.releaseVersion和更改此自动替换 release.newVersion

可以通过插件配置完成versionPatterns吗?

也许使用这种模式/[.]*\.(\d+)\.(\d+)[.]*/

regex gradle jenkins gradle-release-plugin

2
推荐指数
1
解决办法
1784
查看次数