我正在编写一个插件,从现有的Gradle构建脚本中提取一些样板。现有的构建脚本主要是用Groovy和编译Java编写的。
为了构建我的插件,我使用了Gradle Kotlin DSL,我想我也可以利用这个机会用Kotlin编写插件。这一切都起作用了,但现在我的插件对Kotlin有很大的依赖性--而且Gradle文档特别建议最小化外部库。
Java和Groovy插件避免了这一点,因为Java和Groovy是与Gradle共享的依赖项,但Kotlin不是共享的前置需求,因此我们必须关注不同插件可能需要的Kotlin版本冲突。
我认为我应该采用以下方法之一,但不清楚哪一种:
>
只需将Kotlin的stdlib
列为标准的依赖项和信任级别,就可以理清事情。
这适用于一个插件,但当另一个插件也在使用但取决于不同的Kotlin时,我是否应该预期会出现问题呢?
为我的插件建立某种uber shadowJar跟踪Kotlin库
这意味着我这样编写的每一个插件都将比需要的大10个MB。
放弃基于Kotlin的插件,重写Java/Groovy
放弃新的良善是一种耻辱,但避免以上的罪过可能会更好。
欢迎推荐!
由于您的插件正在替换样板,并且可能不会公开发布,所以将其作为Gradle Kotlin DSL中的脚本插件编写是否有意义?这样,一个足够新的学生就能理解它。
当另一个手风琴打开时,我必须关闭手风琴。我一次只能显示一个手风琴打开。目前,手风琴允许您一次打开多个面板。如果我打开一个选项卡,然后打开另一个选项卡,两个选项卡将同时打开。我只能显示一个。你能帮我吗?
正如你所看到的,我做的每件事都是正确的,但它仍然给我带来了错误。我在另一台计算机上测试了我的代码,它起作用了!我甚至从我的电脑上删除了android studio,Gradle和SDK manager并重新安装它们,但它仍然给我错误。我该怎么修好它?
下面的代码使用在首选项UI中显示的复选框控件。 我希望一个名为的函数可以在我选中的复选框控件时启动,我该怎么做?
问题内容: 我有一个要连接到MySQL数据库的应用程序。它在半夜断开连接,然后喷出有关连接的信息,并且JDBC在X秒内没有收到消息。 在进行任何需要与SQL Server通信的操作之前,我先打电话给我。 这是我的方法: 在该方法中,我将密码等信息放入字符串中,然后以标准JDBC方式创建连接。 然后我调用此方法: 我可以对这两种方法进行哪些更改以适应丢失的连接? 问题答案: 这不是检索连接的正确方法
我不知道如何在带有kotlin DSL的gradle构建中使用shadow插件。所有文档都使用groovy dsl。 这是build.gradle.kts的内容: 这是的内容 但是当我尝试进行 时,我收到此错误: 我认为这很奇怪,因为我已经在参数中输入了应用程序主类。 我试着加上这个: 但是当我尝试使用此选项构建时,它抱怨它找不到类型。 我到底做错了什么?
问题内容: 我有一个可以为其创建一个(或多个)实例的实例。我正在使用Servlet环境,并且已经将一个EntityManagerFactory连接到Servlet(通过Servlet上下文),该Servlet在Servlet的生命周期中(因此,对于所有用户)都共享。 我可以执行以下操作之一: 在我的Servlet的生存期内创建一个EntityManager(例如,在所有用户之间共享) 为每个用户创