我有一个发布的gradle插件,看起来像这样:
|__root
| |
| |
| |__java
| | |__SomeJavaClass.java
| | |__SomeJavaClass2.java
| |
| |__kotlin
| |__MyPluginClass.kts
| |__MyTaskClass.kts
| |__Utils.kts
我想将这个插件作为一个项目包含在我的多项目构建中,而不是将其发布到repo以便于开发。
这个插件有3个项目A正在使用的静态编程语言文件。MyPluginClass.kts有我自己的插件类,MyTaskClass.kts有我自己的任务类,Utils.kts只包含kotlin函数。java类用于MyPlugin和MyTask。
它被放在项目A的build.gradle.kts类路径上
classpath("com.my:custom.plugin:version")
我希望实现一个非常简化的项目结构:
root
|
|__Project A
| |
| |__build.gradle.kts
| |__x.gradle.kts
| |__y.gradle.kts
| |__settings.gradle
|
|__Project build-logic
| |
| |__build.gradle.kts
| |
| |__java
| | |__SomeJavaClass.java
| | |__SomeJavaClass2.java
| |
| |__kotlin
| |__MyPluginClass.gradle.kts
| |__MyTaskClass.gradle.kts
| |__Utils.gradle.kts
我正在尝试从这些kotlin文件创建插件并将它们包含在我的主构建中,因为我需要它们预编译,但是当build.gradle在那里运行时,我似乎找不到一种方法将它们放在Project A的类路径上。这可能吗?什么是正确的解决方案?
我用的是gradle 7.3
您可以使用复合构建组合多个独立的Gradle项目。Gradle插件也是如此。
包括来自另一个目录的Gradle插件在测试Gradle插件部分中有记录。
因此,如果您有一个共享构建逻辑项目,该项目提供了一个ID为my的Gradle插件。共享构建逻辑,您希望在project-a中使用它。
my-projects/
├── shared-build-logic/
│ ├── src/
│ │ └── ...
│ ├── build.gradle.kts
│ └── settings.gradle.kts
└── project-a/
├── src/
│ └── ...
├── build.gradle.kts
└── settings.gradle.kts
然后,您需要在您的Project-a
Gradle设置文件中包含shared-build-gic
。
// my-projects/project-a/settings.gradle.kts
rootProject.name = "project-a"
pluginManagement {
includeBuild("../shared-build-logic")
}
现在,只要shading-build-logic
正确提供了Gradle插件,在Project-a
中您就可以引用该插件。
// my-projects/project-a/settings.gradle.kts
plugins {
id("my.shared-build-logic")
}
我的Gradle项目的结构如下: 通常,要获取 文件夹的绝对路径,我只需在根 文件中执行即可。 但不幸的是,如果您从项目目录外部运行gradle脚本,例如执行如下操作,则此方法不起作用: 使用上一个命令,gradle 是在项目的父级中查找 目录,因为我从那里开始编写脚本。 是否有方法获得项目的绝对路径,即构建位置。gradle是,即使您从另一个目录启动脚本?或者有没有其他方法来获取脚本所在文件夹中
所以我有一个多项目设置,看起来像这样
下面的这些代码可以帮助您通过CSS文件和SCSS文件,创建和编译 CSS 和 JS 文件的source-maps。 安装依赖 为了运行编译和压缩任务,你必须安装 node 和 npm。 命令行 // (Optional) Install Gulp module globally npm install gulp -g // Install fullpage's build dependen
在另一个项目中,我使用/应用这个插件: 但是如何从MyGradlePlugin.groovy中的apply方法中迭代公共依赖项并打印它们的坐标(artifactId、groupId、version)?
我写了一个gradle插件,我只想在我自己的项目中使用。下面是一个简化的文件结构: 我通过引用jar文件将插件添加到模块 一开始效果很好,但有一个问题。如果您清理项目并尝试再次构建它,它将失败,因为'。/plugin/build/libs/payload-plugin-0.0.1-SNAPSHOT。jar不再存在,它将不会尝试重建插件模块,因为这将被视为配置错误。 我尝试只使用gradlew:so
我有一个build.gradle文件,比如: 当我使用STS Gradle插件将项目导入Eclipse时,只有compile conf依赖项显示在“Gradle dependencies”类路径容器下。 是否也有可能让提供的conf被STS插件拉入?