小编Ren*_*cic的帖子

如何强制GridView在Android中生成方格单元格

如何强制Android GridView生成方格单元格(Cell的高度等于单元格的宽度)GridView有10*9个单元格,应用程序必须支持多个屏幕!

我使用了线性布局:

row_grid.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="0dp" >

        <ImageView
            android:id="@+id/item_image"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="fitXY"
            android:src="@drawable/ic_launcher" >
        </ImageView>

    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

和GridView: activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/katy" >

    <GridView
        android:id="@+id/gridView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:horizontalSpacing="0dp"
        android:numColumns="4"
        android:stretchMode="columnWidth"
        android:verticalSpacing="0dp" >
    </GridView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

GridView的每个单元格都包含具有相同宽度和高度的图像.图像比细胞大,必须伸展以适应细胞. 在此输入图像描述

layout android gridview

25
推荐指数
3
解决办法
3万
查看次数

Spring @Value带注释的方法,当属性不可用时使用默认值

情况

我将.properties文件中的属性注入到使用@Value注释的字段中.但是,此属性提供敏感凭据,因此我将其从存储库中删除.我仍然希望如果有人想要运行项目并且没有.properties文件,其凭据将默认值设置为字段.

问题

即使我将默认值设置为字段本身,当.properties文件不存在时,我也会遇到异常:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xxx': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'secret' in string value "${secret}"
Run Code Online (Sandbox Code Playgroud)

这是带注释的字段:

 @Value("${secret}")
 private String ldapSecret = "secret";
Run Code Online (Sandbox Code Playgroud)

我预计在这种情况下只会设置普通字符串"secret".

java spring spring-annotations properties-file spring-boot

10
推荐指数
2
解决办法
9925
查看次数

在Gradle预编译插件中配置默认​​属性

我想将属性从预编译脚本插件传递到项目本身。我在buildSrc目录中预编译了脚本插件。

1 在buildSrc/gradle.properties我定义了defaultSpringBootVersion具有 值的属性2.6.3。该属性用于buildSrc/build.gradle指定org.springframework.boot插件版本。

2 同时,我希望插件本身位于将buildSrc/src/main/groovy/com.rivancic.convention-gradle-plugin.gradle其应用于项目属性:

project.ext{
  springBootVersion = defaultSpringBootVersion
}
Run Code Online (Sandbox Code Playgroud)

3 如果我尝试在根项目中访问 springBootVersion 我希望它可以通过插件使用,则会收到以下错误:

An exception occurred applying plugin request [id: 'com.rivancic.convention-gradle-plugin']
> Failed to apply plugin 'com.rivancic.convention-gradle-plugin'.
   > groovy.lang.MissingPropertyException: Could not get unknown property 'defaultSpringBootVersion' for object of type org.gradle.internal.extensibility.DefaultExtraPropertiesExtension.
Run Code Online (Sandbox Code Playgroud)

示例项目链接:https://github.com/rivancic/gradle-plugin-properties

表示:在此输入图像描述

在这种情况下,如何正确地将属性注入buildSrc/gradle.properties到预编译脚本插件中buildSrc/src/main/groovy/com.rivancic.convention-gradle-plugin.gradle

gradle gradle-plugin

7
推荐指数
0
解决办法
373
查看次数

使用环境变量设置elasticsearch的集群名称

我正在使用docker-compose运行elasticsearch服务。我需要指定自定义集群名称。正如我在github 票证中发现的,我可以在es.cluster.name属性中传递自定义集群名称。这种方法对我来说很有效。

问题:

是否可以使用环境变量设置集群名称,即使使用版本 2.4 和此 docker 镜像Docker hub

在5.3 版本的 docker 文档中,我发现我也可以在环境变量中指定它,但在 elasticsearch:2.4 中这不起作用。由于 spring 数据兼容性,我必须使用 2.4 版本。

我在 2.4 版本中没能解决这个问题,还是仅在最新版本中才启用此功能?

docker compose 文件的一部分:

elastic:
    image: "elasticsearch:2.4-alpine"
    # Setting property value works
    command: "elasticsearch -Des.cluster.name=custom-cluster-name" 

    # Setting env properties is not working, but I would prefer it this way
    #environment: 
    # - es.cluster.name=custom-cluster-name
Run Code Online (Sandbox Code Playgroud)

elasticsearch docker-compose

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

Jacoco 报表聚合插件 - Spring 依赖管理

我\xe2\x80\x99m 将聚合代码覆盖率从使用 JaCoCo 示例报告代码覆盖率的脚本迁移到JaCoCo 报告聚合插件\n这是一个 SpringBoot 项目,因为它\xe2\x80\x99s 或者这是一种常见的做法,它使用依赖管理插件

\n

在运行 testCodeCoverageReport 任务来聚合测试报告后,我收到以下异常。我认为这是因为我在 dependencyManagement 中使用 BOM 和依赖项版本约束,而不是本机 Gradle 依赖项约束。\n下面的异常:

\n

任务“:testCodeCoverageReport\”执行失败。

\n
\n

无法解析配置 \':allCodeCoverageReportClassDirectories\' 的所有文件。\n无法找到 com.pizza.infrastruct:logging:。\n要求者:\n项目 : > 项目 :pizza-server\n无法找到 com.pizza.infrastruct:多租户:.\n要求者:\n项目 : > 项目 :pizza-server\n找不到 com.pizza.infrastruct:rest:。\n要求者:\n项目 : > 项目 :pizza-server\n项目 : > 项目 :pizza-服务器 > 项目 :pizza-rest\n无法找到 com.pizza.infrastruct:rest-test:。\n要求者:\n项目 : > 项目 :pizza-server

\n
\n

有没有解决方案,能够仍然依赖 dependencyManagement 插件,并且还能够使用 jacoco 聚合插件?

\n

dependency-management gradle jacoco spring-boot gradle-plugin

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

在子类gradle任务中设置项目属性

我正在定义一个gradle任务"launchIPad2Simulator",它在robovm gradle插件中继承了另一个已经定义的任务"launchIPadSimulatorfrom".目标是设置定义哪个模拟器将运行的项目属性.

// Run the IPad2 simulator
task launchIPad2Simulator2(type: org.robovm.gradle.tasks.IPadSimulatorTask) {

  project.setProperty("robovm.device.name", "iPad-2")
  project.setProperty("robovm.arch", "x86")
} 
Run Code Online (Sandbox Code Playgroud)

但问题是,我必须首先在gradle.properties文件中定义属性.他们甚至不需要分配任何值.gradle.properties文件的全部内容:

robovm.device.name
robovm.arch
Run Code Online (Sandbox Code Playgroud)

我宁愿让gradle.properties文件为空,但如果上面的任务然后运行,则错误:错误:(112,0)没有这样的属性:robovm.device.name for class:org.gradle.api.internal.project .DefaultProject_Decorated显示.

此外,如果属性仅在任务中定义如下(gradle.properties为空),则忽略它们.

// Run the IPad2 simulator
task launchIPad2Simulator2(type: org.robovm.gradle.tasks.IPadSimulatorTask) {

  project.properties.put("robovm.device.name", "iPad-2")
  project.properties.put("robovm.arch", "x86")
}
Run Code Online (Sandbox Code Playgroud)

那么在子类任务中动态设置项目属性的正确方法是什么?

===编辑===

好了,现在我看到设置项目属性也不好,因为在多个任务中它会被覆盖.所以也许这不应该是项目属性.

临时解决方案现在使用命令行调用任务:

// simulator with properties launched from command line
task launchIPad2Simulator1(type: Exec) {
  commandLine 'gradle', '-Probovm.device.name=iPad-2', '-Probovm.arch=x86', 'launchIPadSimulator'
}
Run Code Online (Sandbox Code Playgroud)

groovy gradle project-properties robovm

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

什么是 Gradle - 脚本块详细信息

我想了解 build.gradle 文件的结构,特别是脚本块详细信息部分。

这是一个简单的例子:

buildscript {
}

allprojects {
}

// Custom defined method that will be invoked from other parts of the script
def xmethod() {
}

subprojects {
}
Run Code Online (Sandbox Code Playgroud)

据我了解,xMethod(){}是 Groovy 中定义的方法。

但是所有其他“脚本块详细信息”(例如所有项目和子项目)是什么?...?它们代表 Gradle 中的哪些构造?他们是如何被处决的?

groovy gradle build.gradle

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