小编A B*_*elp的帖子

Gradle7版本目录:如何与buildSrc一起使用?

我对正在孵化的 Gradle 版本目录感到非常兴奋,并且一直在尝试它。I\xe2\x80\x99ve 发现我的信息可以在我的应用程序和 utility-lib 项目的脚本gradle/libs.versions.toml中访问。build.gradle.kts

\n

但是,我无法使用该toml文件的内容buildSrc/build.gradle.kts约定文件

\n

我可以构建的唯一方法是将依赖项硬编码到这些文件中,就像我在版本目录功能之前所做的那样。

\n

在该buildSrc文件夹中,我创建了一个settings.gradle.kts文件并插入了 的dependencyResolutionManagement代码versionCatalogs,该代码指向与我的应用程序和 utility-lib 项目相同的文件。

\n

根据 Gradle7文档,似乎可以与 和 模块共享版本目录\xe2\x80\xa6 I\xe2\x80\x99d如果可能的buildSrc话,希望能够推动它与 一起工作。buildSrc

\n

这是一个简单的示例项目,我通过以下方式创建gradle initmy-version-catalog

\n

感谢您的时间和帮助,

\n

麦克风

\n

gradle build.gradle gradle-plugin gradle-kotlin-dsl

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

如何调查/修复:不明确的导入:在多个模块中找到包 cloud.google.com/go/compute/metadata

当我执行 go mod tidy (go v1.19) 时,我收到以下错误。我确实在我的 go pkg 目录中看到了这两个包。我认为 v1.6.1 是最新版本并且是要保留的版本。如果这是真的,我如何确定谁在旧的 v0.34.0 版本中拖动并纠正它?我很感激你的建议。

感谢您的时间和兴趣,迈克

github.com/abc/runimage/v5/core/service imports
    github.com/grpc-ecosystem/go-grpc-middleware/auth tested by
    github.com/grpc-ecosystem/go-grpc-middleware/auth.test imports
    google.golang.org/grpc/credentials/oauth imports
    golang.org/x/oauth2/google imports
    cloud.google.com/go/compute/metadata: ambiguous import: found package cloud.google.com/go/compute/metadata in multiple modules:
    cloud.google.com/go v0.34.0 (/Users/mike/Go/pkg/mod/cloud.google.com/go@v0.34.0/compute/metadata)
    cloud.google.com/go/compute v1.6.1 (/Users/mike/Go/pkg/mod/cloud.google.com/go/compute@v1.6.1/metadata)
make: *** [tidy] Error 1
Run Code Online (Sandbox Code Playgroud)
// go.mod 

module github.com/abc/runimage/v5

go 1.19

require (
    github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
    github.com/labstack/gommon v0.3.1
    google.golang.org/genproto v0.0.0-20220805133916-01dd62135a58
    google.golang.org/grpc v1.48.0
    google.golang.org/protobuf v1.28.1
)

require (
    github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.2
    github.com/joho/godotenv v1.4.0
)

require (
    github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.0-20210816181553-5444fa50b93d // indirect
    github.com/go-resty/resty/v2 v2.7.0 …
Run Code Online (Sandbox Code Playgroud)

go google-cloud-platform grpc-gateway

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

System.DateTime类型不是受支持的类型.更改为使用System.DateTimeOffset

我们正在创建WebApi 2.2服务,并且正在使用上面列出的技术.我们的后端数据存储区是MySql 5.6.我们使用dotConnect for MySql来处理数据存储.在数据库中,有一个RowVersion列,其类型为Timestamp.在EF中,我成功生成了模型,但我注意到RowVersion设置为DateTime.当我运行WebApi时,我得到以下运行时异常,因此我需要将类型更改为DateTimeOffset,因为Timestamp不可用.

在我们的应用程序中,我们将使用带有ETag的RowVersion进行并发处理.因此,我们只会在我们的应用程序中阅读RowVersion; 每当插入或更新发生时,数据库将自动更新RowVersion.

我不知道如何纠正这个问题...也许,有一些方法可以添加一个自动类型转换,因此模型中的RowVersion是一个Int64,我们通过发送Timestamp.value自动在Int64和Timestamp之间进行转换应用.我们只是阅读它,所以这似乎是合理的.

当我在EF模型中将RowVersion更改为Int64并构建应用程序时,我收到以下错误:

错误1错误2019:指定的成员映射无效.'Model.customer'类型中成员'Version'的类型'Edm.Int64 [Nullable = True,DefaultValue =]'与'Devart.Data.MySql.timestamp不兼容[Nullable = True,DefaultValue =,Precision = 0 ''类型'Model.Store.customers'中的成员'Version'.C:\ PROJECTS\ServiceMySql\ServiceMySql\Models\Model.edmx 898 17 ServiceMySql

我非常感谢您帮助弄清楚如何解决此问题.

感谢您的时间和建议,

麦克风

本帖子开头提到的例外情况:

System.ArgumentException未由用户代码处理
HResult = -2147024809 Message =类型'System.Nullable 1 configurationCallback)位于c:\ PROJECTS\XXXXServiceMySql\XXXXServiceMySql\Global.asax.cs中的XXXXServiceMySql.WebApiApplication.Application_Start():第17行 InnerException :1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' of property 'Version' in the 'XXXXServiceMySql.Models.customer' type is not a supported type. Change to use 'System.DateTimeOffset' or ignore this type by calling Ignore<XXXXServiceMySql.Models.customer>() on 'System.Web.OData.Builder.ODataModelBuilder'. Parameter name: navigationProperty Source=System.Web.OData
ParamName=navigationProperty StackTrace: at System.Web.OData.Builder.EntityTypeConfiguration.AddNavigationProperty(PropertyInfo navigationProperty, EdmMultiplicity multiplicity, …

mysql dotconnect odata asp.net-web-api entity-framework-6

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

Gradle 7.2 自定义插件:如何在 apply(project: Project) 中使用版本目录?

我有一个运行正常的 Gradle 7.2 自定义插件。我想将其配置为使用新的 Gradle 版本目录来获取依赖信息。我知道如何配置和使用版本目录,并为我们的共享依赖项生成了一个共享 jar。它正在被其他一些版本读取,没有任何问题。

但是,当插件设置依赖项时,我似乎找不到正确的咒语来使用插件的版本目录 jar。我不断收到“‘VersionCatalogsExtension’类型的扩展不存在”。

以下两个片段显示了我在 apply 方法中访问版本目录所做的操作:

    override fun apply(project: Project) {
        val libs = project
           .extensions
           .getByType(VersionCatalogsExtension::class.java)
           .named("libs")
        
        addBuildDependencies(libs)
            .
            .
            .
Run Code Online (Sandbox Code Playgroud)
private fun Project.addBuildDependencies(libs: VersionCatalog) {
    dependencies.apply {
        // BOMs
        add(JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME, platform(libs.findDependency("arrow.bom").get()))
        add(JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME, platform(libs.findDependency("detekt.bom").get()))
Run Code Online (Sandbox Code Playgroud)

我将不胜感激任何片段或重定向。

谢谢,迈克

gradle build.gradle android-gradle-plugin gradle-plugin gradle-kotlin-dsl

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

Gradle 7.2:如何应用自定义 Gradle SETTINGS 插件?

我正在将 buildSrc 约定插件迁移到独立插件中。有很多为 Project 对象创建 Gradle 插件的示例,但真正缺乏 Settings 和 Gradle。我想集中我们在 gradle.settings.kts 文件中使用的存储库列表,因此我创建了一个 Gradle 设置插件:RepositoriesPlugin。

它在项目插件中以相同的方式实现,但是,我不确定如何解释 Gradle 文档中的以下引用:“插件可以接收类型为 Settings 的参数,在这种情况下,插件可以应用于设置脚本。 ”,如以下链接的文档中所述:Gradle 7.2 Doc

以下示例显示了我如何在 settings.gradle.kts 文件中应用设置插件。 根据文档,这是应用设置插件的方式吗?

我也在下面包含了基本设置插件代码。

我非常感谢您的帮助,以澄清我正在正确地执行此操作。我确信这篇文章将帮助那些远离项目插件的人。

感谢您的时间和兴趣..

// settings.gradle.kts

pluginManagement {
    plugins {
        id("com.abitofhelp.gradle.plugins.repositoriesplugin") version "1.0.0-1"
    }

    settings.extensions
        getByType(RepositoriesPluginExtension::class).apply {
            localRepoName = "local-repo"
            localRepositoryPath = "../../local-repo"
        }

    // Set the plugin repositories for all projects.
    //repositories {
    //    maven { name = "localRepo"; url = uri(file("./local-repo")) }
    //    gradlePluginPortal()
    //    mavenCentral()
    //}
}
Run Code Online (Sandbox Code Playgroud)
// repositoriesplugin.kt
open …
Run Code Online (Sandbox Code Playgroud)

android gradle build.gradle android-gradle-plugin gradle-plugin

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

JAX-RS:如何在发送响应之前拦截json消息正文?

我正在创建仅处理json的JAX-RS Web服务。我们正在使用JAX-RS 2.0和Netbeans8。所有JPA 2.1实体都有一个唯一的ID,该ID用于审核。它不是主键。一个实体可能具有其他关联实体的列表。我们需要确保实体和关联列表中的实体都具有相同的唯一ID。如果存在差异,则审核失败。

我正在尝试找出处理此验证的最佳方法...

我可以尝试使用反射,但这很慢而且很麻烦。

我可以创建一个写拦截器,确定实体的种类,从中获取唯一的ID,然后扫描任何对象列表以确​​定是否存在差异。我不喜欢这个想法,因为我必须编写代码来验证模型中的每个特定实体,并在模型发生更改时维护该代码。

我最喜欢的选择是拦截在返回给请求者之前生成的json。我可以简单地标记字符串并找到唯一的id值。如果有任何不同,我会抛出异常。这假定正在使用急切加载,这是我能想到的唯一缺点,因为这意味着我们必须始终返回完整的有效负载,而不仅仅是返回实体。对于此项目,我尝试使用写拦截器,但发现该实体尚未序列化为json。因此,我对如何在返回给调用者之前截获json感到困惑。

我非常感谢您提出的关于实现我的目标的最佳选择的建议。

感谢您的关注,建议和时间。

麦克风

java json jax-rs java-ee

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

找不到类型或命名空间名称“DbEntityEntry&lt;TEntity&gt;”

我有以下在 EF7 之前使用的界面。当我尝试使用 EF7 构建应用程序时,我收到以下错误,而且我似乎在任何地方都找不到这种类型。我非常感谢您关于如何更改 EF7 代码的建议。

错误 CS0246 找不到类型或命名空间名称“DbEntityEntry”(您是否缺少 using 指令或程序集引用?)

public interface IContext
{
    DbSet<Client> Clients { get; set; }
    DbSet<TEntity> Set<TEntity>() where TEntity : class;

    DbEntityEntry<TEntity> Entry<TEntity>(TEntity entity) where TEntity : class;

    int SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-core

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

Moment.js:是否可以一次清零(LT)?

我们显示一列日期和时间,并使用 Moment.js 来格式化显示的文本:

假设日期是 2013 年 9 月 9 日,时间是 08:00 AM。

var formatted = moment(adate).format("L LT");
Run Code Online (Sandbox Code Playgroud)

日期是完美的并且用零填充,例如:09/22/2013

时间未补零;我 8:00 到

有没有办法告诉 Moment.js 将时间填零,以便我的日期和时间列看起来不错?

我使用的是2.1.0版本。

javascript time-format date-formatting momentjs

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

LangageExt:使用 Bind() 链接两个 Either,但无法弄清楚如何使用它们创建另一个 Either

我正在使用 LanguageExt 来实现 C# 中的函数式编程功能。我有一个方法,我想构建 VaultSharp 实例来访问我们的 HashiCorp Vault 服务。我的目标是通过两个 Either 的链创建 VaultClientSettings 的实例(请参阅下面的方法)。最后,要么从链中的任何 Either 返回异常,要么从 VaultClientSettings 的实例返回异常。我认为我已经很接近了,但无法完成最后一步。我很感激你的建议。

以下是 C# 的 FP 库和 VaultSharp 库的链接;

这是显示我看到的错误的图像:

在此输入图像描述

            Either<Exception, Uri> GetVaultUri() =>
                EnvironmentVariable.GetEnvironmentVariable(KVaultAddressEnvironmentVariableName)
                    .Map(uri => new Uri(uri));

            Either<Exception, TokenAuthMethodInfo> GetAuthInfo() =>
                EnvironmentVariable.GetEnvironmentVariable(KVaultTokenEnvironmentVariableName)
                    .Map(token => new TokenAuthMethodInfo(token));

            Either<Exception, VaultClientSettings> GetVaultClientSettings(
                Either<Exception, Uri> vaultUri,
                Either<Exception, TokenAuthMethodInfo> authInfo
            )
            {
                /////////////////////////////////////////////////////////////////////////
                // I have access to the uri as u and the authmethod as a, but I cannot //
                // figure out how …
Run Code Online (Sandbox Code Playgroud)

c# f# functional-programming hashicorp-vault language-ext

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